2010-08-03 102 views

回答

3

@property:你使用它時,你想:

你可以使用一些像非原子,atmoic,保留真正有用的生成的代碼,而無需編寫任何代碼。你也有getter和setter方法。要使用它,你有兩種方法:@synthesize或@dynamic:@synthesize,編譯器會自動爲你生成getter和setter,@dynamic:你必須自己編寫它們。

@property對於內存管理非常有用,例如:retain。

如何保留沒有@property?

if (_variable != object) { 
    [_variable release]; 
    _variable = nil; 
    _variable = [object retain]; 
    } 

如何將它與@property一起使用?

self.variable = object; 

當你調用上面的線,你居然叫喜歡[自我setVariable:對象]二傳手然後將生成的setter方法做它的工作

+1

快速旁註 - 如果您在保留沒有@property的情況下,請確保並檢查自我分配! if(variable_!= object)[variable_ release]; 否則,您可能會最終釋放唯一對該對象的引用,並在釋放後調用retain以保持不良。 – 2010-08-03 08:00:08

+0

啊是的,這是正確的 – vodkhang 2010-08-10 05:29:49

+0

我想用一些特定的情況下使用iPhone SDKd – harlram 2010-08-10 05:34:31

2

@property(與@synthesize一起)自動生成set和/或get的代碼。所以下面的代碼:

self.prop = @"some string"; 

相當於

[self setProp: @"some string"]; 

還要注意,

self.prop = @"some string"; 

是從

prop = @"some string"; 

後者套不同的變量直接的,而前者稱爲方法getProp設置變量prop

相關問題