以下是重现的步骤:
使用Xcode 4.2使用 Master-Detail Application
创建一个新项目 选中使用自动参考计数(ARC),核心数据并选择iPad
。
在viewDidLoad
里面放了这段代码:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(goBack)];
backButton.title = @"back";
self.navigationItem.leftBarButtonItem = backButton;
还将此方法放在其他地方:
- (void)goBack
{
[self.navigationController popViewControllerAnimated:YES];
}
didSelectRowAtIndexPath
内的MasterViewController
内置了此代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MasterViewController* master = [[MasterViewController alloc] init];
master.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:master animated:YES];
}
添加一行并在其中单击。
返回主视图,然后再次单击该项目。
尝试在新视图中添加内容或删除,并发生以下崩溃:
*** -[MasterViewController controllerWillChangeContent:]: message sent to deallocated instance 0x6d85c30
如果您不使用ARC,则不会发生相同的步骤。
使用模态时出现相同的错误。
任何人都可以证实这一点,或者我错过了使用ARC的东西吗?
答案 0 :(得分:0)
似乎启用带有核心数据的僵尸会导致一些问题,我能给出的最佳建议是仅在必要时启用它。