第23條 通過委托與數(shù)據(jù)源協(xié)議進行對象間通訊
多使用位段數(shù)據(jù)類型
第24條 將類的實現(xiàn)代碼分散到便于管理的數(shù)個分類中
第25條 總為第三方類的分類名稱加前綴
category中的方法可能會覆蓋掉原來類的方法,比如NSString有個私有方法,你新增了一個NSString的Category類,并新增了跟該私有方法重名的方法,那么代碼將會一直調(diào)用擬新增的Category類的新方法。如果有多個分類都覆蓋了私有方法,那么最后只會執(zhí)行一個分類的。
解決方法就是,在創(chuàng)建Category時,類名和方法名加前綴,如:
NSString+ABC_HTTP.h
- (void)abc_urlScreame;
第26講 勿在分類中聲明屬性
聲明屬性需要自己寫setter和getter方法。
第27條 使用 “class-continuation分類”隱藏實現(xiàn)細節(jié)
oc的動態(tài)消息系統(tǒng)決定了類中沒有真正的私有變量和私有方法。
這里說的 class-continuation分類 其實就是.m文件里定義的 extension
,如下圖。可以在里定義方法和實例變量,為啥能定義這些,查看第6條(穩(wěn)固的ABI)。