1.ARC和MRC混合編譯:
如果一個工程為MRC,其中要添加ARC的文件:
選擇target -> build phases -> compile sources -> 單擊ARC的文件將compiler flags設(shè)置為:-fobjc-arc
如果一個工程為ARC,其中要添加MRC的文件:
同樣的路徑,然后單擊MRC的文件將compiler flags設(shè)置為:-fno-objc-arc。
2.模擬多繼承
在C++和JAVA中都可以實現(xiàn)多繼承?? 但是在OC中沒有多繼承? 但是oc中并沒有限制一個類中只能遵循一個協(xié)議? 在編程中可以通過協(xié)議的方式? 實現(xiàn)類似于多繼承??? 比如在類A、B、C?? 中B? C各聲明一個協(xié)議? A類中遵循B C的協(xié)議? 并實現(xiàn)協(xié)議中的方法? 可以實現(xiàn)簡單的類似于多繼承的方式
3.類別和繼承的用法與區(qū)別
????? 類別是給一個類添加一些方法? 比如給NSString添加一個字符串逆序的方法? 當(dāng)一個字符串調(diào)用該方法時候就會返回一個逆序的字符串(具體實現(xiàn)逆序步驟方法就不說了)這中方法只能給一個類添加一個新的方法和功能 不能改變原有的方法? 但是類別能獲取該類的所有變量(不論共有的還是私有的)? 又比如SDWebImage 給 UIImageView 增加了 setImageWithURL:方法。給使用者提供了很大的方便 ? 如果在編程中遇到一個類中沒有的方法 ? 但是在類里要很多地方都需要用的到? 那就不妨給這個類加一個類別把 ? 可以提高開發(fā)效率的。
?????? 繼承是子類繼承父類的所有對外提供的方法和變量,當(dāng)然如果父類的方法不能滿足子類的需求,子類完全可以在父類的基礎(chǔ)上進(jìn)行方法的擴(kuò)充或許重寫父類的方法??? 繼承不能調(diào)用父類私有的方法和變量,如果子類中聲明了 與父類相同的變量,那么子類不能再訪問父類中同名的這個變量 ,子類的變量會覆蓋該變量(注意不是刪除是覆蓋)
????