1

当我在模拟器中启动我的应用程序时,它会立即崩溃并显示“错误:内存读取失败”

在 iPad/iPhone 上一切正常,但是当我添加一个简单的“return;”时 在核心数据线之前,模拟器启动正常:

return;
CCAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];

重要!!:它不会在任何时候运行该代码,只是编译它。如果我添加“return;” 在另一个文件中的相同核心数据连接之前,它运行良好。看起来有某种与核心数据或其他东西的最大“连接”?

我试过清理 Xcode(正常和清理构建文件夹),清理模拟器(重置内容和设置),但没有成功。

附加问题:有什么办法可以重新安装IOS模拟器吗?

4

2 回答 2

2

“错误:内存读取失败”。今天早上我收到了同样的消息。我发现它与 Block 相关。

我们知道,如果一个类有一个 Block 作为它的成员,它应该是这样的:

@property(nonatomic, copy)BlockType block;

我的错误是在向 NSArray 实例添加块时忘记使用复制:

[array addObject:aBlock];

最后我解决了这个问题:

MyBlockType copy = [aBlock copy];
[array addObject:copy];
[copy release];

祝你好运!

更新 Mar/20/1013 另一种情况导致“错误:内存读取失败”。

- (void)blockCalledMethod{
    for (BlockType b in _dictionary) {
        b(self);
    }
}

解决我的问题的关键是使用 .allKeys 迭代 NSDictionary。但是字典中的对象是Block,所以它必须与Block相关。

于 2013-02-22T08:01:29.187 回答
0

我的 iPhone 模拟器也有同样的问题。我在 XCode 中有干净的代码

在此处输入图像描述

我已经重置了模拟器

在此处输入图像描述

希望它会有所帮助

于 2015-08-31T12:20:32.893 回答