iPhone アプリでメモリの問題が発生し、苦労しています。これが私が得るエラーメッセージです:
malloc: * mmap(size=9281536) に失敗しました (エラー コード = 12) *エラー: 領域を割り当てられません
有用な情報である可能性がある場合に備えて、このアプリには ARC を使用しています。コード (以下) は、コア データ エンティティをロードするためにバンドル内のファイルを使用しているだけです。
奇妙なことに、クラッシュは 90 回以上ループした後にのみ発生します。「コンテンツ」のサイズがどんどん小さくなるので、メモリ要求もどんどん小さくなるはずです。
これがコードです。誰かが欠陥を見ることができれば、私に知らせてください。
NSString *path,*contents,*lineBuffer;
path=[[NSBundle mainBundle] pathForResource:@"myFileName" ofType:@"txt"];
contents=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
int counter=0;
while (counter<10000) {
lineBuffer=[contents substringToIndex:[contents rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location];
contents=[contents substringFromIndex:[lineBuffer length]+1];
newItem=[NSEntityDescription insertNewObjectForEntityForName:@"myEntityName"
inManagedObjectContext:context];
[newItem setValue:lineBuffer forKey:@"name"];
request=[[NSFetchRequest alloc] init];
[request setEntity: [NSEntityDescription entityForName:@"myEntityName"
inManagedObjectContext:context]];
error=nil;
[context save:&error];
counter++;
}