歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Objective-C中Category的用法

類目(Category)的基本概念

封裝是面向對象的一個特征,oc也不例外,但是有的時候我們會碰到一種情況,比如我們封裝了一個類,不想再動它了,但是我們又需要在那個類中增加一個方法,這時候我們就不必在那個類中做修改或者再定義一個它的子類,只需要添加一個類目(Category)即可。

(1) 在類目中定義的方法,會成為原始類的一部分,與其他方法的調用沒有區別

(2)通過給父類定義類目方法,其子類也會繼承這些方法。

類目的應用:(1)對現有的類進行擴展(2)作為子類的替代手段(3)對類中的方法歸類

類目的局限性:

無法想類目中添加新的實例變量,類目沒有位置來容納實例變量,如果想增加類的實例變量,只能通過定義子類的方式

如果在類目中覆蓋現有類的方法,這樣會引起super的消息的斷裂,因為類目中的方法具有更高的優先級,因此,一般不要覆蓋現有類中的方法

類目的定義、

類目的命名規則:類名(擴展方法名)

類目不繼承父類,只需要一個括號表明該類目的用途即可

#import <Foundation/Foundation.h>

@interface NSString (MyCompare)

-(void)test;

@end

 

#import "NSString+MyCompare.h"

@implementation NSString (MyCompare)

-(void)test{
   
}
@end

 

Copyright © Linux教程網 All Rights Reserved