面霸題目
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指向通用類型的指針