zoukankan      html  css  js  c++  java
  • OC协议

    由于OC单继承,所以如果不想改动原有类(生成子类),那么可以使用协议来扩展原有的类。

    OC的协议可以定义方法,遵守协议的类必须实现这些方法。

    调用方式和C++模板类一样

    @import Foundation;
    
    @protocol myProtocol_1 <NSObject>    //协议
    -(void) print_1: (int) param1 Setparam2: (int) param2;
    @end
    
    @protocol myProtocol_2 <NSObject>
    -(void) print_2;
    @end
    
    @interface classA : NSObject<myProtocol_1,myProtocol_2> //遵守两个协议
    @end
    
    @implementation classA
    -(void) print_1:(int)param1 Setparam2:(int)param2 {
        printf("111111 %d and %d
    ", param1 , param2);
    }
    
    -(void) print_2{
        printf("2222
    ");
    }
    -(void) print{
        NSNumber *x = @4242;
        NSLog(@"%@
    ", x);
    }
    @end
    
    int main(int argc, char* argv[]) {
        classA * val = [classA new];
        [val print];
        [val print_1: 5 Setparam2: 7];
        [val print_2];
        printf("%ld", [val retainCount]);
        [val release];
        return 0;
    }

    可以看到,classA类实现了myProtocol1和myProtocol2两个协议,声明方式为classA : NsObject<myPro1,myPro2> {....}

  • 相关阅读:
    mybatis plus foreach 的用法
    mongodb聚合查询
    mongodb and 和 or 查询
    mongodb全文搜索
    时间参数的传递
    rabbitmq
    AOP各种的实现
    OWASP Top 10十大风险 – 10个最重大的Web应用风险与攻防
    OAuth2.0认证和授权机制讲解
    MySQL主从复制
  • 原文地址:https://www.cnblogs.com/FdWzy/p/14073520.html
Copyright © 2011-2022 走看看