在我的 iOS 应用程序中,我已将 AppDelegate 注册为 CoreData 更改的通知侦听器。使用这段代码:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(mergeChangesFromContextDidSaveNotification:)
name:NSPersistentStoreDidImportUbiquitousContentChangesNotification
object:[self persistentStoreCoordinator]];
并且每次有更新时都会正确调用 mergeChangesFromContextDidSaveNotification 方法。
但是在这个方法中,我试图调用一个 NSTimer 来做另一个操作:
- (void)mergeChangesFromContextDidSaveNotification:(NSNotification *)notification {
NSTimer *t =[NSTimer scheduledTimerWithTimeInterval:10.0
target:self
selector:@selector(mergeCoreDataFromCloud:)
userInfo:nil
repeats:NO];
}
}
关键是永远不会调用应由计时器触发的mergeCoreDataFromCloud:。这是签名:
-(void)mergeCoreDataFromCloud:(NSTimer*)timer {
// never called...
}
请注意,我处于开发的早期阶段,代码并不完美,我只想知道为什么计时器没有启动。我想它与线程有关,但我不知道......
谢谢