美文网首页
oc中的 分类 和 代理

oc中的 分类 和 代理

作者: 下页天 | 来源:发表于2016-10-10 12:36 被阅读122次

    oc 中的分类 Category

    • 类别的声明格式 @interface 类名 (类别的名字)
    • @interface Person (FootBall)
    • 注意:在类别中添加属性,系统是不会实现setter和getter、也不会生成对应的成员变量
      • 在setter方法中采用runtime给某个对象添加一个成员变量

        -(void)setSubject:(NSString *)subject{
            //使用runtime为setter方法赋值
            objc_setAssociatedObject(self, "subject", subject, OBJC_ASSOCIATION_COPY_NONATOMIC);
        }
        
            -(NSString *)subject{
            //getter 方法中要在运行时去返回运行时创建的临时成员变量
            return objc_getAssociatedObject(self, "subject");
        }
        

    oc中的代理 delegate

    • 声明协议

          @protocol BossDelegate <NSObject>
          @required//必须实现
          -(void)teachiOS:(NSString *)project;
          @optional//可选实现的方法
          -(void)helpStudent;
          //带返回值的协议方法
          -(CGFloat)reportQingkuang:(NSString *)qingkuang;
          @end
          
      
    • 代理指针

          //委托方要付出的代理,声明代理属性
          @property (nonatomic, weak) id <BossDelegate>delegate;
          
      
    • 建立代理关系即可

    相关文章

      网友评论

          本文标题:oc中的 分类 和 代理

          本文链接:https://www.haomeiwen.com/subject/lfamyttx.html