【发布时间】:2011-10-26 05:44:27
【问题描述】:
假设我有一个名为 MyClass 的对象,它有一个定义为 @property (nonatomic, retain) NSString *foo; 的属性,我合成了该属性。
然后在另一个类中,假设应用程序委托我定义了一个字符串(但它可以是任何东西)NSString *myString = [[NSString alloc] initWithString:@"Hi"]; 并调用 MyClass 的一个实例:[myClass setFoo:myString];
实际发生了什么?是否设置了对分配给myString 的空间的引用?还是因为我在foo 上调用了retain,所以它是否获取了为myString 分配的内存并将其设置为为foo 分配的内存?
我必须在应用程序委托中释放myString。我必须在 MyClass 中释放 foo,因为它被保留了,但是我必须再次释放它,因为分配了另一个 alloc'd 变量?
【问题讨论】:
标签: iphone objective-c memory-management properties accessor