setDelegate:self和retainCount

时间:2011-10-10 07:49:23

标签: iphone uiview self dealloc

我有一个UIView [self],有两个客户UIViews [articalBottomPanel] [movingSharePanel]

每个客户视图都在一个类中声明

第一个视图[articalBottomPanel]委托将被设置为自我

第二种观点也将采用[self.artical],[self]

如下:

[self.articalBottomPanel setDelegate:self];
[self.articalBottomPanel.btnCommment addTarget:self action:@selector(commentBtnPressed:) forControlEvents:UIControlEventTouchUpInside]; 



[self.movingSharePanel setArtical:self.artical];
[self.movingSharePanel setParentView:self];  

我的dealloc是

- (void)dealloc
{
    NSLog(@"ArticalViewController : dealloc");


    [movingSharePanel_ release];
    [articalBottomPanel_   release]; 


    [super dealloc];
}

问题是:当我弹出视图[self] dealloc时没有调用?!

问题是:在弹出这个视图[self]之前, 它是否想要比delloc发布更多的版本?!

2 个答案:

答案 0 :(得分:1)

你是否以@property(保留)作为委托?如果是,则将其指定。如果没有,请确保您的ViewController已发布。检查推后是否松开。

答案 1 :(得分:1)

retainCount没用。不要打电话。

具体来说,对象的绝对保留计数是一个不相关的实现细节,通常应该被忽略(仅当您还拥有每个保留/释放的确切库存时才有用,但如果您有,则保留计数不是也没用。)

See this answer有关如何准确追踪仍然保留对象的人/内容的精彩解释。