У меня есть следующий фрагмент кода (который может быть вызван несколько раз или даже одновременно, потому что он является ответом на какой-то метод NSURLConnection didFinishLoading), который должен вызывать метод 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 не вызывается, о которых я не знаю?