您何时必须在iPhone SDK中使用@property
和@synthesize
?为什么要使用@property
和@synthesize
?
我正在研究财产,但我无法得到正确的想法。用于说明这一点的一些例子是什么?
答案 0 :(得分:3)
@property:您在以下时间使用它:
您可以使用一些非常有用的生成代码,如非原子,atmoic,retain,而无需编写任何代码行。你也有getter和setter方法。要使用它,还有另外两种方法:@synthesize或@dynamic:@synthesize,编译器会自动为你生成getter和setter,@动态:你必须自己编写它们。
@property非常适合内存管理,例如:retain。
如果没有@property,你怎么能保留?
if (_variable != object) {
[_variable release];
_variable = nil;
_variable = [object retain];
}
如何在@property中使用它?
self.variable = object;
当你调用上面一行时,你实际上像[self setVariable:object]一样调用setter,然后生成的setter将完成它的工作
答案 1 :(得分:2)
@property(以及@synthesize)会自动生成set
和/或get
代码。所以下面的代码:
self.prop = @"some string";
相当于
[self setProp: @"some string"];
另请注意,
self.prop = @"some string";
与
不同prop = @"some string";
后者直接设置变量,而前者调用方法getProp
来设置变量prop
。