有没有理由使用一个属性只用于内部类的ivar?

时间:2011-04-04 19:20:59

标签: iphone objective-c properties

是否有任何理由为ivar使用属性,该属性仅在类内部使用?

我可以看到在一个类中使用objective-c中的属性可以帮助其他类访问实例变量,但是对于实例变量的内部使用,是否有任何好处/需要为它使用属性?事实上,对于房产,你必须是“自我”。在它访问之前,它似乎与实例变量的名称相反。

也许我应该将这个问题分解为:

  • 例如表示IBOutlet控件的变量(如果这是特殊的话)
  • 您可能需要跨类的方法来协助
  • 的任何其他实例变量

2 个答案:

答案 0 :(得分:5)

不确定。如果您需要在-init-dealloc以外的时间更改此变量的值,则使用@property表示您可以让编译器为您处理内存管理。

答案 1 :(得分:1)

我通常不使用界面构建器,但我认为您总是需要IBOutlets的属性。我刚刚回答了一个问题,因为他没有这个问题。你可能没有(我不知道),但内存管理变得更容易。

就任何其他实例变量而言,使用属性的唯一原因是使内存管理更容易:

self.object = newObject;

替换

[object release];
object = [newObject retain];

如果您不打算在课堂之外使用您的属性,您可以在.m文件中声明它,就像使用私有方法一样。这样,其他课程就不会意识到你的财产的存在。