iPad アプリケーションでサーバーから約 5000 枚の画像を同期しています。これらの画像のサイズは約 2.5 GB で、iPad にも十分な容量があります。
しかし、375 個の画像のみを同期した後、次の理由でアプリケーションがクラッシュし始めます
malloc: *** mmap(size=1048576) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
2013-02-14 06:20:50.058 AAA[1250:907] ***
Terminating app due to uncaught exception 'NSMallocException',
reason: 'Attempt to allocate 1048576 bytes for NS/CFData failed'
*** First throw call stack:
コア データを使用してドキュメント ディレクトリに画像を保存しています。
アプリの保存データに制限があれば教えてください。そして、このすべての操作はメインスレッドで実行しています。
for (int i = 0; i < [shadowElement3 count]; i++)
{
NSMutableArray* array = [[NSMutableArray alloc] init];
Product* failedBankInfo = [NSEntityDescription insertNewObjectForEntityForName:@"Product" inManagedObjectContext:context];
NSXMLElement* element11 = [shadowElement3 objectAtIndex:i];
NSString* strPath = [element11 stringValueForNode:@"B1_COD"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:strPath];
NSLog(@"%@",[element11 stringValueForNode:@"img"]);
NSData* receivedData = [NSData dataWithContentsOfURL:[NSURL URLWithString: [element11 stringValueForNode:@"img"]]];
[receivedData writeToFile:savedImagePath atomically:YES];
[array addObject:savedImagePath];
}