例外ブレークポイントを有効にすると、以下のこのコードでは例外が発生します。iOS - 管理オブジェクトコンテキスト例外
なぜか分かりませんが、私がアプリケーションを起動するたびにブレークポイントがトリガされます。
例外ブレークポイントについてわからないことがあるのですか、または管理対象オブジェクトのコンテキストで調査する必要がありますか?
EDIT:
コード例:
-(void)parseJson
{
_resultArray = [[NSMutableArray alloc]init];
BOOL success = YES;
NSError *saveError = nil;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mergeCoreDataChangesToMainContext:) name:NSManagedObjectContextDidSaveNotification object:self.managedObjectContext];
[self doCustomActionBeforeParsing];
for (NSDictionary* entries in _jsonArray) {
id aMTLObject = [[MTLDatabaseManager sharedInstance] mantleObjectModel:_modelClass anItem:entries];
[self doCustomActionBeforeCoreDataInsertionOfMantleObject:aMTLObject];
[[MTLDatabaseManager sharedInstance] insertMantleObjectInContext:aMTLObject aManagedObjectContext:self.managedObjectContext];
if ([self isCancelled])
break;
}
if (![self isCancelled] && [self.managedObjectContext hasChanges]) {
[self.managedObjectContext performBlockAndWait:^{
success = [self.managedObjectContext save:&saveError];
}];
}
if (![self isCancelled]) {
dispatch_async(dispatch_get_main_queue(), ^{
if (success) {
[self.delegate parserDidFinishParsingOperation:self fromUrl:self.dataUrl];
} else {
[self.delegate parserOperation:self didFailParsingOperationWithError:saveError fromUrl:self.dataUrl];
}
});
}
[[NSNotificationCenter defaultCenter] removeObserver:self name:NSManagedObjectContextDidSaveNotification object:self.managedObjectContext];
}
が、これはあなたがperformAndWaitブロックを使用し、そのようですか?
例外ブレークポイントは、このラインでトリガー:私たちは一定の例外を無視することができ、この記事で見た
success = [self.managedObjectContext save:&saveError];
CoreData例外を無視することをお勧めしますか? (私はそう思わない)。
チェックログこの行に何らかのオブジェクトがある必要があります。 – Amanpreet
例外が発生する行を指定してください。特に例外は何ですか? –
質問を編集 – Balanced