많은 개체가 NSMutableArray
(> 2500)에 있고이를 저장할 때 응용 프로그램이 충돌합니다 (메모리 경고 x3 수신). 여기 saveContext
방법백그라운드 스레드에 데이터를 저장할 때받은 메모리 경고
- (void)saveContext {
NSError*err = nil;
if(![[self managedObjectContext] save:&err])
{
NSLog(@"Unresolved error %@, %@", err, [err userInfo]);
}
}
UPDATE
NSLog(@"start");
NSInteger saveTemp = 0;
NSData *data = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&err];
if ([data length] > 0 && err == nil)
{
MyClass* rcust;
NSString *respStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSMutableArray* cust = [respStr JSONValue];
for(NSDictionary *v in cust)
{
if([dataProvider getClassById:[[v valueForKey:@"Id"] integerValue] error:nil] == nil)
{
rcust = [dataProvider createClass];
rcust.clsId = [v valueForKey:@"Id"];
}
else
{
rcust = [dataProvider getClassById:[[v valueForKey:@"Id"] integerValue] error:nil];
}
rcust.cstZip = [v valueForKey:@"Zip"] == [NSNull null]? @"": [v valueForKey:@"Zip"];
saveTemp++;
if(saveTemp > 1000)
{
NSLog(@"save");
[dataProvider saveContext];
saveTemp = 0;
}
}
[dataProvider saveContext];
}
: 나는 방법에 코드를 추가하고 거기에 당신이 있습니다.
2013-03-21 15:18:54.641 start
2013-03-21 15:19:31.843 save
2013-03-21 15:23:21.126 save
즉 데이터 저장 속도가 느려지고 잠시 후 애플리케이션이 중단됩니다.
언제 메모리 경고를 받습니까? 다른 세부 정보를 게시하십시오. –