oc中的 分類 和 代理

oc 中的分類 Category

  • 類別的聲明格式 @interface 類名 (類別的名字)
  • @interface Person (FootBall)
  • 注意:在類別中添加屬性,系統(tǒng)是不會(huì)實(shí)現(xiàn)setter和getter、也不會(huì)生成對(duì)應(yīng)的成員變量
    • 在setter方法中采用runtime給某個(gè)對(duì)象添加一個(gè)成員變量

      -(void)setSubject:(NSString *)subject{
          //使用runtime為setter方法賦值
          objc_setAssociatedObject(self, "subject", subject, OBJC_ASSOCIATION_COPY_NONATOMIC);
      }
      
          -(NSString *)subject{
          //getter 方法中要在運(yùn)行時(shí)去返回運(yùn)行時(shí)創(chuàng)建的臨時(shí)成員變量
          return objc_getAssociatedObject(self, "subject");
      }
      

oc中的代理 delegate

  • 聲明協(xié)議

        @protocol BossDelegate <NSObject>
        @required//必須實(shí)現(xiàn)
        -(void)teachiOS:(NSString *)project;
        @optional//可選實(shí)現(xiàn)的方法
        -(void)helpStudent;
        //帶返回值的協(xié)議方法
        -(CGFloat)reportQingkuang:(NSString *)qingkuang;
        @end
        
    
  • 代理指針

        //委托方要付出的代理,聲明代理屬性
        @property (nonatomic, weak) id <BossDelegate>delegate;
        
    
  • 建立代理關(guān)系即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容