2013-02-12 35 views
1

当我在模拟器中启动我的应用程序时,它立即崩溃与“错误:内存读取失败”iOS:模拟器中的最大内存?

一切工作正常在iPad/iPhone,但是当我添加一个简单的“返回”核心数据线之前,模拟器精细启动:

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

注意!!: 它不会随时运行代码,只需编译它。如果我添加“返回”;在另一个文件中的相同核心数据连接之前,它运行正常。看起来像核心数据有某种最大的“连接”或某种东西?

我试过清洗Xcode(正常和干净的生成文件夹),清洗模拟器(重置内容和设置),但没有成功。

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

+0

发现,这是该项目的代码线的量。如果我删除一些行(或者只是添加一个返回;),否则在项目中的位置,然后模拟器不会崩溃。真奇怪!!当我编写代码并在开始时崩溃的时候 - 我只是在项目的某个地方删除(rem)代码,我现在不需要它,并且它再次运行正常......?!?!?! – Romo 2013-02-12 20:49:32

回答

2

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

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

@property(nonatomic, copy)BlockType block; 

我的错误是忘记当块添加到一个NSArray的实例使用副本:

[array addObject:aBlock]; 

最后我解决了它本:

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

祝你好运!

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

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

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

+0

任何想法你怎么调试这个,发现它是与块做? – BlueFish 2013-03-07 00:25:17

+0

不知道,我找到了,因为我修好后,我的代码运行良好。 – CopperCash 2013-03-15 02:44:09

+0

感谢您的答复,帮助。 – user1244109 2013-04-10 15:59:19

0

我有我的iPhone模拟器相同的问题。我有干净的代码的XCode

enter image description here

,我已经重置模拟器

enter image description here

希望这将有助于