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