oc58 Category注意事項

2021-09-07 14:28:56 字數 1483 閱讀 1921

//

//category注意事項

#import

#import

"person+nj.h

"int main(int argc, const

char *ar**)

//

#import

@inte***ce

person : nsobject

@property (nonatomic, assign)

intage;

- (void

)say;

@end

//

#import

"person.h

"@implementation

person

-(void

)say

@end

//

//person+mj.h

#import

"person.h

"@inte***ce

person (mj)

@end

//

//person+mj.m

#import

"person+mj.h

"@implementation

person (mj)

//5.如果多個分類中都有和原有類中同名的方法, 那麼呼叫該方法的時候執行誰由編譯器決定,會執行最後乙個參與編譯的分類中的方法

-(void

)say

@end

//

person+nj.h

#import

"person.h"//

1.分類是用於給原有類新增方法的, 它只能新增方法, 不能新增屬性(成員變數)

@inte***ce

person (nj)

////

2.分類中的@property, 只會生成setter/getter方法的宣告, 不會生成實現以及私有的成員變數,所以下面寫的不會報錯,但是也不能新增屬性。

//@property (nonatomic, assign) double height;

- (void

) hello;

/*方法的呼叫順序:

1.分類

2.本類

3.父類 */

@end

//

person+nj.m

#import

"person+nj.h

"@implementation

person (nj)

- (void

)hello

//4.注意: 如果分類中有和原有類同名的方法, 會呼叫分類中的方法,也就是說會忽略原有類的方法

//注意: 在開發中盡量不要這樣寫,原有的就廢了。

-(void

)say

@end

oc58 Category注意事項

category注意事項 import import person nj.h int main int argc,const char ar import inte ce person nsobject property nonatomic,assign intage void say end im...

OC構造方法 Category

構造方法 1,重寫 init方法 1 型別用id型別 萬能指標,能指向 操縱任何oc物件,不用加 id nsobject 2,一定要呼叫回super的init方法 初始化父類中宣告的一些成員變數和其他屬性 3 如果物件初始化成功,才有必要進行接下來的初始化 if self nil 4 返回乙個已經初...

oc語法特性 分類Category

1 分類只能增加方法 包括類方法和物件方法 不能增加成員變數 2 在分類方法的實現中可以訪問原來類中的成員變數 3 分類中可以重新實現原來類中的方法,但是會覆蓋掉原來的方法,導致原來的方法無法再使用 警告 4 方法呼叫的優先順序 分類 原來的類 父類,若包含有多個分類,則最後參與編譯的分類優先 5 ...