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)系即可