Iphone 内存管理:手动保留/释放还是访问器方法?
在以下方面,最佳方法是什么:Iphone 内存管理:手动保留/释放还是访问器方法?,iphone,memory-management,Iphone,Memory Management,在以下方面,最佳方法是什么: 泄漏的安全和控制 表演 你在班上吗 首先:保持对每个变量的控制 if (objectProperty_ != anObject) { [objectProperty_ release]; objectProperty_ = [anObject retain]; } 第二个:声明属性并使用访问器,让系统完成工作 @property (nonatomic, readwrite, retain) NSObject *objectProperty; .
- 泄漏的安全和控制
- 表演
- 你在班上吗
if (objectProperty_ != anObject) {
[objectProperty_ release];
objectProperty_ = [anObject retain];
}
第二个:声明属性并使用访问器,让系统完成工作
@property (nonatomic, readwrite, retain) NSObject *objectProperty;
...
@synthesize objectProperty = objectProperty_;
...
self.objectProperty = anObject;
谢谢。最有可能让你保持理智的方法是在可能的时候使用Apple编写的访问器,在必须的时候编写自己的访问器
访问器方法调用确实增加了少量时间;我在我的iPad上计时,我想大概是10-7秒。无论您是自己编写方法还是使用Apple的方法,这都应该是正确的。在除了最极端的情况之外的所有情况下,这都不太重要。最有可能让你保持理智的方法是在可能的时候使用Apple编写的访问器,在必须的时候编写自己的访问器
访问器方法调用确实增加了少量时间;我在我的iPad上计时,我想大概是10-7秒。无论您是自己编写方法还是使用Apple的方法,这都应该是正确的。在除最极端的情况外的所有情况下,这都不太重要。尽可能使用属性
@property
自动记录访问器的语义。例如,在您的示例中,我可以从接口中看到objectProperty保留其值,而不是分配或复制它当您声明属性但定义自己的访问器时,第2点甚至适用。尽可能使用属性
@property
自动记录访问器的语义。例如,在您的示例中,我可以从接口中看到objectProperty保留其值,而不是分配或复制它当您声明属性但定义自己的访问器时,第2点甚至适用。更少的代码意味着更少的错误,因此,如果您必须为公共访问声明读写属性,则只需使用属性获取集。更少的代码意味着更少的错误,如果您必须为公共访问声明读写属性,则只需使用属性获取集