【发布时间】:2012-01-18 14:51:51
【问题描述】:
我收到这个错误,不知道该怎么办:
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
如果我在发生错误的那一行设置断点,我不知道我必须专门搜索什么。在仪器中,我检查了分配,并且值一直在增加,直到所有分配的 14,5 GB。
有人可以帮我吗?
刷子51
编辑 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];
【问题讨论】:
-
"can't allocate region" 表示没有剩余内存空间!可能是时候开始研究内存管理和释放未使用的资源了。
-
iOS,14.5GB 的分配空间?我在这里错过了什么吗?
-
不开玩笑。 iPhone 4 的内存是什么?是 1GB 吗?
-
如果没有代码来进一步分析它,我会在黑暗中刺一下,说如果你分配 14.5GB,那么你很可能内存不足(iOS 设备通常没有那么多内存)。错误代码=12 也表明了这一点。
-
@MaxMacLeod 我相信它是 500MB。
标签: ios memory-management malloc allocation