分類只能增加方法, 不能增加成員變量、@property(可能編譯不報錯悦昵,但是運行有問題)
分類可以訪問原來類中的成員變量
如果分類和原來類出現(xiàn)同名的方法, 優(yōu)先調(diào)用分類中的方法, 原來類中的方法會被忽略
方法調(diào)用的優(yōu)先級(從高到低):
? 分類(最后參與編譯的分類優(yōu)先),只要有分類就優(yōu)先調(diào)用分類,不考慮與主類的編譯順序渐逃。
? 原來類
? 父類
類擴展是分類的一個特例伐谈。
Extension是Category的一個特例烂完。
起名字為匿名,并且添加的方法一定要實現(xiàn)诵棵。(category可以不實現(xiàn))抠蚣。因此又叫匿名分類÷陌模可以為一個類添加額外的變量嘶窄,方法或者合成屬性。
我的理解:
延展就是為類一開始設(shè)計沒有考慮到的情況增加新的屬性方法來彌補距贷。
有以下方法實現(xiàn)類擴展:
1. 直接在Person.m文件中用 @interface Person()的方法柄冲,然后在類本身的@implementation中去實現(xiàn)擴展的方法;
2. 新建Objective-C文件work忠蝗,選擇Extension现横,擴展的原類為Person,然后生成Person_work.h頭文件,在頭文件中擴展屬性和方法戒祠,同樣需要在原類的.m文件中區(qū)實現(xiàn)骇两。
看了網(wǎng)上一些關(guān)于Category和Extension之間區(qū)別的文章,還是覺得這片比較細致一些姜盈。原po地址:http://blog.csdn.net/lushuner/article/details/48371623低千。我只是個搬運工。