使用ARC + Core Data时出错

时间:2011-11-07 20:23:24

标签: objective-c ios ipad core-data automatic-ref-counting

以下是重现的步骤:

使用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的东西吗?

1 个答案:

答案 0 :(得分:0)

似乎启用带有核心数据的僵尸会导致一些问题,我能给出的最佳建议是仅在必要时启用它。