Malloc错误“不能分配区域”失败,错误代码12.任何想法如何解决这个问题?

我得到这个错误,不知道该怎么做:

AppName(3786,0xa0810540) malloc: *** mmap(size=16777216) failed (error code=12) *** error: can't allocate region *** set a breakpoint in malloc_error_break to debug 

如果我设置一个断点发生错误,我不知道我有什么特别search。 在工具我已经检查了分配和价值正在增加,直到14.5 GB的所有分配。

有人可以帮我吗?
brush51

编辑1:
更多信息:
– 我在模拟器,而不是在iOS设备上。
– 那是所有的输出(我得到这个错误更多次)。 – 错误发生在这一行上:

 NSManagedObjectContext *context = [self managedObjectContext]; NSFetchRequest *fetchREntitySetsCards = [[[NSFetchRequest alloc] init] autorelease]; //NSFetchRequest *fetchREntityRelCardsAnswersNotes = [[[NSFetchRequest alloc] init] autorelease]; NSEntityDescription *entitySetsCards = [NSEntityDescription entityForName:@"EntitySetsCards" inManagedObjectContext:context]; //NSEntityDescription *entityRelCardsAnswersNotes = [NSEntityDescription entityForName:@"EntityRelCardsAnswersNotes" inManagedObjectContext:context]; setEntity:entityCard]; [fetchREntitySetsCards setEntity:entitySetsCards]; //[fetchREntityRelCardsAnswersNotes setEntity:entityRelCardsAnswersNotes]; NSArray *fetchedObjSetsCards = [context executeFetchRequest:fetchREntitySetsCards error:&error]; //The error is here---> //NSArray *fetchedObjRelCardsAnswersNotes = [context executeFetchRequest:fetchREntityRelCardsAnswersNotes error:&error]; //Badges für TabBarItem Inbox setzen setsCount = [context countForFetchRequest:fetchREntityUserSet error: &error]; cardsCount = [context countForFetchRequest:fetchREntityCard error: &error]; 

谷歌search将揭示不less教程使用仪器来了解你的记忆是怎么回事:

如何debugging内存泄漏:( 教程
http://www.raywenderlich.com/2696/how-to-debug-memory-leaks-with-xcode-and-instruments-tutorial

另一个:
查找Obj-C内存泄漏video
http://www.youtube.com/watch?v=R449qEuexNs&feature=related

*有很多类似的问题可能会从中受益。

听起来很奇怪,但是当主线程被重载时,我有相同的行为。

内存使用情况足够优化:仪器显示无泄漏,实时内存大约为2Mb,在设备上运行时没有内存警告,所有大量分配都在autorelease池内完成。

但是,在主线程上使用核心数据存储数据的过程非常庞大。 只需将存储代码像这样移动到后台进程即可

 dispatch_async(dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ BOOL result = NO; result = [[DataManager sharedInstance] storeGuestsToDB]; dispatch_async(dispatch_get_main_queue(), ^{ //finalization } } 

解决了我的问题。

由于视图控制器的viewWillLayoutSubviews的recursion调用,我有这个问题。 我正在使集合视图的布局无效,导致无限循环重复布置视图。