我可能已经跳进了Objective-C的有点太快了,并认为我知道足够的内存管理潜水的。原来我不是。如何设置属性值在Objective-C的正确方法
快进一点,我赶上了......大部分。我最后剩下的问题之一是@ property/@综合过程并正确设置这些值。
我经常看到这样的:
SomeObject *obj = [[SomeObject alloc] init];
self.obj = obj;
[obj release];
这是有道理的,但我不知道这实现了类似的事情足以成为一种替代方案:
self.obj = [[[SomeObject alloc] init] autorelease];
请问这是可以接受的任何地方,你可能会设置值为@property
,obj
?或者是直接访问实例变量优先于init
方法中的那两个?
obj = [[SomeObject alloc] init];
谢谢。
编辑:绝对相关question讨论我的一半问题。我的问题的autorelease
部分被引用在其中一个答案中,但尚未得到确认。
所以我的问题依然存在:
- 是
autorelease
在这种情况下,一个有效的替代? autorelease
可以用这种方式在init
方法中使用,还是应该直接在init
方法中设置实例变量?
密切相关的,可能重复:http://stackoverflow.com/questions/7842641/best-way-to-set-a-retained-property-to-a-newly-created-object – 2011-12-13 22:27:13