2010-10-28 44 views
1

什么来讲是最好的办法:内存管理:手动保留/释放还是访问方法?

  • 安全和泄漏的控制?
  • 表现?
  • 知名度在课外?

首先:保持每个变量

if (objectProperty_ != anObject) { 
    [objectProperty_ release]; 
    objectProperty_ = [anObject retain]; 
} 

的控制:声明的属性和使用存取并让系统做的工作

@property (nonatomic, readwrite, retain) NSObject *objectProperty; 
... 
@synthesize objectProperty = objectProperty_; 
... 
self.objectProperty = anObject; 

谢谢。

回答

2

尽可能使用属性。

  1. 他们可以节省您不得不写很多样板accessor方法。在属性之前的日子里,可能每个Cocoa程序员都有一对他们用来定义访问器的宏。
  2. @property自动记录存取器的语义。例如在你的例子中,我可以从界面看到objectProperty保留了它的值,而不是分配它或复制它。

当您声明属性但定义了您自己的访问器时,点2甚至成立。

1

最有可能保持您的理智的方法是尽可能使用Apple编写的存取器,并在必要时编写自己的存取器。

访问器方法调用确实会添加少量时间;我在iPad上设定了这个时间,我认为这个时间大约是10分-7秒。无论您自己编写方法还是使用Apple的方法,这都应该是真实的。除了最极端的情况之外,这都不太可能发生。

1

较少的代码意味着更少的错误,所以如果您必须声明读写属性以进行公共访问,那么只需使用属性进行get-set。