【发布时间】:2011-04-27 22:51:59
【问题描述】:
我要做的第一件事是创建一个 ViewController 并将其推送到导航控制器。
viewController = [[MyViewController alloc] init];
[navController pushViewController:viewController animated: NO];
[viewController release];
现在保留计数为 2(pushViewController 使用 2 保留显然但不是我的责任)到目前为止还不错。
在 MyViewController 中,我正在创建一个类的实例并将 ViewController 设置为实例的委托。
timer = [[MyBackgroundTimer alloc] initWithInterval:20];
[timer setDelegate:self];
现在由于 setDelegate,viewControllers 的保留计数增加了 1:
但是当我稍后释放 viewController 时,它永远不会调用 dealloc,因为我还有一个保留计数。
当你将自己设置为委托时,你应该如何正确地减少保留计数?
【问题讨论】:
标签: iphone objective-c ios ipad