在Xcode中,启动一个新的主 - 详细信息项目。称之为'测试'。
为其添加新的“文件”。使用XIB将其设为UIViewController
文件。称之为TestViewController。
修改insertNewObject:
方法中的MasterViewController代码,说明这一点:
-(void)insertNewObject:(id)sender
{
TestViewController *initViewController = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
[self.navigationController pushViewController:initViewController animated:YES];
[initViewController release];
}
现在在TestViewController.m中添加dealloc
方法,只需调用[super dealloc];
在这里放置断点并运行应用程序。一切都应该运行正常。
但是,如果您启用Zombie对象,则在步入*** -[TestViewController class]: message sent to deallocated instance 0x7484f20 error
时可能会获得[super dealloc]
。
你也得到这个吗?我在iOS6.0模拟器上遇到它试图调试一个导致我这个问题的问题。
赞赏的想法。这是一个iOS错误吗?还是一个模拟器错误?
为'清晰度'添加了TestViewController代码
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)dealloc
{
// Zombie here???
[super dealloc];
}
答案 0 :(得分:0)
我猜你的TestViewController有出口和属性。如果任何这些属性/出口过度释放,将导致此错误。确保[super dealloc]也是dealloc方法的最后一行