私は NSOperation サブクラスを持っています。これがメインのメソッドです:
(void)main
{
NSAutoreleasePool *Pool = [[NSAutoreleasePool alloc] init];
managedObjectContext = [NSManagedObjectContext contextThatNotifiesDefaultContextOnMainThread];
Message *message = (Message *) [managedObjectContext objectWithID:self.messageID];
message.status = [NSNumber numberWithInt:SKMessageSendStateStart];
[message save];
[self send];
[self finish];
[Pool drain];
}
fetchResultController と defaultContext を次のように定義します。
(BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[MagicalRecordHelpers setupCoreDataStackWithStoreNamed:@"Shark"];
self.context = [NSManagedObjectContext context];
[NSManagedObjectContext setDefaultContext:self.context];
self.fetchController = [Message fetchRequestAllGroupedBy:nil withPredicate:nil sortedBy:@"text" ascending:YES];
[self.fetchController setDelegate:self];
[self.fetchController performFetch:nil];
}
[メッセージ保存] を呼び出すたびに、コンソール ログアウト: -NSManagedObjectContext(MagicalRecord) mergeChangesFromNotification: Merging changes to * DEFAULT 環境メインスレッドで *
しかし、NSFetchedResultsControllerDelegate が呼び出されることはありません。これは、FetchedResultsController を間違って設定したということですか? 私は完全に混乱しています。
前もって感謝します。