0
我有以下一段代碼(可能會多次調用,或者甚至在同一時間調用,因爲它響應某些NSURLConnection didFinishLoading方法)應該調用willSave方法針對上下文中註冊的每個對象。willSave在覈心數據中的某些保存操作中不會調用
NSLog(@"Before save.");
NSLog(@"Object count: %d", [[managedObjectContext registeredObjects] count]);
[managedObjectContext save:nil];
NSLog(@"After save.");
問題是,willSave(和didSave)方法在上次保存操作中只調用一次。我真的不知道這裏發生了什麼,因爲我沒有使用線程或類似的東西。
在上下文中的每個對象是我自己MSRemoteObject類的子類,它具有以下willSave實現:
- (void)willSave {
[super willSave];
NSLog(@"Will save.");
}
這是產生日誌的一個例子,當我運行應用程序:
2010-07-12 12:07:45.638 Manistone[9902:207] Before save.
2010-07-12 12:07:45.638 Manistone[9902:207] Object count: 1
2010-07-12 12:07:45.643 Manistone[9902:207] Will save.
2010-07-12 12:07:45.650 Manistone[9902:207] Did save.
2010-07-12 12:07:45.651 Manistone[9902:207] After save.
2010-07-12 12:07:46.141 Manistone[9902:207] Before save.
2010-07-12 12:07:46.141 Manistone[9902:207] Object count: 11
2010-07-12 12:07:46.142 Manistone[9902:207] After save.
2010-07-12 12:07:50.574 Manistone[9902:207] Before save.
2010-07-12 12:07:50.574 Manistone[9902:207] Object count: 16
2010-07-12 12:07:50.575 Manistone[9902:207] After save.
2010-07-12 12:07:51.136 Manistone[9902:207] Before save.
2010-07-12 12:07:51.136 Manistone[9902:207] Object count: 18
2010-07-12 12:07:51.136 Manistone[9902:207] After save.
2010-07-12 12:07:51.137 Manistone[9902:207] Before save.
2010-07-12 12:07:51.137 Manistone[9902:207] Object count: 18
2010-07-12 12:07:51.138 Manistone[9902:207] After save.
2010-07-12 12:07:51.144 Manistone[9902:207] Before save.
2010-07-12 12:07:51.144 Manistone[9902:207] Object count: 18
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.145 Manistone[9902:207] Will save.
2010-07-12 12:07:51.146 Manistone[9902:207] Will save.
2010-07-12 12:07:51.146 Manistone[9902:207] Will save.
2010-07-12 12:07:51.146 Manistone[9902:207] Will save.
2010-07-12 12:07:51.146 Manistone[9902:207] Will save.
2010-07-12 12:07:51.146 Manistone[9902:207] Will save.
2010-07-12 12:07:51.146 Manistone[9902:207] Will save.
2010-07-12 12:07:51.146 Manistone[9902:207] Will save.
2010-07-12 12:07:51.146 Manistone[9902:207] Will save.
2010-07-12 12:07:51.147 Manistone[9902:207] Will save.
2010-07-12 12:07:51.158 Manistone[9902:207] After save.
我真的想在每個保存操作中觸發willSave方法。有什麼辦法可以強制這個嗎?或者有沒有我不知道的willSave方法的某些條件?