すべてのレコードを取得して 1 つずつ削除して、すべてのデータをクリアしたい:
- (void) clear{
for (Program *program in [self getAllProgram]){
[managedObjectContext deleteObject:program];
}
if (![managedObjectContext save:&error])
{
NSLog(@"Problem deleting program: %@", [error localizedDescription]);
}
}
- (NSArray *)getAllProgram{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Program"inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"freq = %@", self.freq];
[request setPredicate:predicate];
// Order the events by creation date, most recent first.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sid" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
NSError *error = nil;
return [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
}
エラーは
CoreData: エラー: 重大なアプリケーション エラーです。コア データの変更処理中に例外がキャッチされました。これは通常、NSManagedObjectContextObjectsDidChangeNotification のオブザーバー内のバグです。-[__NSCFSet removeAllObjects]: userInfo (null) を持つ不変オブジェクトに送信される変更メソッド
誰が理由を教えてくれますか、または良い習慣を教えてくれますか? ありがとう!