【发布时间】:2011-02-11 11:26:55
【问题描述】:
编辑: 自己解决了这个问题。原来是 dealloc 方法中的一个剩余部分导致 UIButton 被释放两次......
我正在尝试在另一个 UIViewController 之上显示一个 UIViewController,就像一个弹出窗口一样。问题是视图似乎被过度发布了。使用 NSZombieEnabled,我收到以下错误:
[CALayer release]:消息发送到释放的实例 0x784bf40
我使用此代码添加视图:
//self.someViewController is declared as (nonatomic, retain)
self.someViewController = [[[SomeViewController alloc] initWithDelegate:self] autorelease];
[self.view addSubview:self.someViewController.view];
然后,我像这样删除视图:
[self.someViewController.view removeFromSuperview];
self.someViewController = nil;
【问题讨论】:
-
someViewController的声明是什么? -
re: robin => 他正在分配一个属性。如果属性是retain(或copy),他需要autorelease。
-
[self.view addSubview:someViewController.view];像这样给出而不是 [self.view addSubview:self.someViewController.view];
-
并且也给出这样的:[someViewController.view removeFromSuperview];希望对你有帮助..
标签: iphone uiviewcontroller addsubview