什么时候必须在iPhone SDK中使用@property和@synthesize?

时间:2010-08-03 06:51:37

标签: iphone

您何时必须在iPhone SDK中使用@property@synthesize?为什么要使用@property@synthesize? 我正在研究财产,但我无法得到正确的想法。用于说明这一点的一些例子是什么?

2 个答案:

答案 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