(내가 앱을 실행하자마자) 백그라운드 스레드에서 데이터베이스에 필수적이지 않은 변경을 한 다음 주 컨텍스트로 병합합니다. 백그라운드 스레드는 많은 변경을 초래할 수 있지만이 백그라운드 처리에서 컨텍스트가 일부 유효성 검증 오류 또는 일부 핵심 데이터 예외를 넘기지 않도록하고 싶습니다. 특히 핵심 데이터와 함께 iCloud를 사용하기 때문에 사용자는 미묘한 관계로 끝날 수 있습니다. 난 그저 예외를 던지기를 멈추지 않고 앱을 계속 실행하기를 원한다.NSManagedObjectContext 주위에 try-catch를 저장하면 도움이됩니까?
이 경우 컨텍스트 저장과 관련하여 @ try- @ catch 블록을 사용하는 것이 합리적입니까? 이 작업을 수행 할 때 성능 또는 메모리 관리 문제가 있습니까?
이런 식으로 뭔가 : 고객의 수천
@try {
[context performBlockAndWait: ^{
NSError *error = nil;
if ([context save:&error]){
NSLog(@"Child context saved");
[context.parentContext performBlockAndWait:^{
NSError *parentError = nil;
if ([context.parentContext save: &parentError]){
NSLog(@"Parent context saved");
}
}];
}
}];
} ....
내 애플 선박, 그래서 아는 것이 좋을 것 전에 손이 해결보다는이 더 많은 문제를 일으킬 수 있다면.
실제로 예외를 안전한 방법으로 복구 할 수있는 경우가 아니면 catch하는 것이 많은 의미가 없습니다. –