2012-02-02 72 views
1

如果我这样做:属性可以保留一个自动释放的对象?

@property (nonatomic, retain) SomeObject* someInstance;

为什么不someInstance仍然存在,甚至当我在使用它的自动释放初始化?

例如:

someInstance=[SomeObject autoreleaseMethod];

我希望someInstance保留它在这种情况下,这样你就可以在以后使用someInstance,但是这是不是真的?

回答

3

如果您使用它的setter,您的财产将只保留该物件。在你的例子中你忘了self.

self.someInstance = [SomeObject autoreleasedObject]; 
+0

啊!当然。谢谢。如果我使用'alloc'方法,如果我使用'self.property'的话,我必须释放两次? – johnbakers 2012-02-02 14:22:08

+0

一旦你完成使用它,在你创建它的范围内。一旦(在这个例子中)自我完成使用它,通常在它的dealloc方法.. – 2012-02-02 14:26:25