嘿,如果我有一些财产

@interface MyClass {
   NSArray* myArray;
}
@end

@property (retain, nonatomic) NSArray* myArray;


在我的初始化方法中,我应该做些什么

myArray = [[NSArray array] retain];


要么

self.myArray = [NSArray array];


我认为前者将是更可取的,因为这很清楚发生了什么事?我猜应该用另一种措辞来表达,您应该在实现中与成员的属性进行交互还是应严格使用成员本身?

最佳答案

首选第一种方法,因为如果您通过访问器,它可以触发KVO通知,如果您的子类是对象,这可能会引起奇怪的问题。

关于iphone - 自动释放对象的Objective-C成员初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1689986/

10-15 00:53