天天看點

黑馬程式員-----面霸題目

面霸題目

1、@property (nonatomic, retian) NSArray *Cars;的setter方法

對于對象setter方法,一定不能忘記重寫dealloc方法

- (void)setCars:(NSArray *)cars

{

if(_Cars != cars)

{

[_Cars release];

_Cars = [cars retain];

}

}

- (void)dealloc

{

[_Cars release];

[super dealloc];

}

2、分類和繼承的差別

1>分類能夠添加新的方法,但是不能新的成員變量/屬性;繼承可以添加方法和成員變量/屬性

2>分類是對類的補充,不會産新的類;繼承往往産生新的類

3>分類裡面可以寫@property能産生getter和setter方法聲明,但是不能産生方法的實作,同樣不會産生_開頭的成員變量,是以你會發現@property可以在分類中使用二編譯不會報錯,隻有當運作的時候,正真使用到getter和sett方法的時候,程式回直接崩掉

3、@property都做了哪些事

1>生成_開頭的成員變量

2>産生方法聲明

3>産生方法實作

4、蘋果的記憶體管理原則

1>誰建立誰release(當有alloc,new,(mutable)copy,後面就一定要使用release或者autorelease)

2>誰retain誰release

5、strong和weak

strong和weak是ARC當中的出來的,retain被strong替換

在示範strong和weak的差別的時候最好的方法是重寫dealloc方法,觀察對象的釋放情況

6、NSNull,NULL,nil的差別

1>nil用于指派空oc對象

2>NSNull用于在集合對象中不可以使用nil的場合,因為在NSArray和NSDictionary當中nil具有特殊含義,辨別數組和字典集合的結束,是以在數組和字典當中如果要表示一個oc對象“什麼都沒有”,那麼可以使用NSNull,NSNull是一個單例的類,隻有一個對象方法null

3>NULL指向通用類型的指針