对象发布,它的属性如何?

时间:2011-02-24 20:37:43

标签: iphone objective-c

我的问题是:我认为此代码中存在错误(这不是我的代码,我没有编译的Mac)。这是代码:

....

CDAUIView *theView = [[CDAUIView alloc] initWithFrame:rectFrame];

theView.myController = self;
self.view = theView;
[theView autorelease];

当View发布时,关于它的属性(myController)??

感谢您的回答

2 个答案:

答案 0 :(得分:0)

如果正确写入CDAUIView,当它被取消分配时,它将释放它保留的任何对象。

答案 1 :(得分:0)

这一切都取决于相关属性背后的细节(具体来说,属性是否声明为retaincopyassign) - 但是这个代码看起来很好假设。在正常情况下,设置属性将保留对象,并释放对象可能导致其属性被释放(如果对象被释放将会发生)。在这种情况下,释放视图不应该导致其myController被释放,因为它仍然由self拥有。但即便如此,发布也只是平衡保留。

对象在保留时不会保留其实例变量,并且它不会因为它被释放而释放它们。它在获得所有权时保留它们,并在它准备放弃所有权时释放它们。