Я создаю любимую функцию основных данных. У меня есть любимый атрибут с типом логическое в таблице рецептов. Есть 2 вида.
Первый вид для пользователя, чтобы выбрать избранное.
Второй вид отображает список избранных.
Функция отлично работает, когда я иду к первому виду. Однако приложение перестало работать после того, как я перешел ко второму виду и снова вернулся к первому виду. Я получаю следующую ошибку:
<code> 2012-01-09 18:44:09.455 coredata[1354:12503] CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. Can't do regex matching on object 0. with userInfo (null)
2012-01-09 18:44:09.457 coredata[1354:12503] <em>*</em> Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do regex matching on object 0.'</p>
<p>
Мой код для метода в первом представлении, который переключает любимый атрибут на 1 или 0:
- (IBAction)favoriteButtonPressed:(id)sender {</p>
<pre><code> if (recipe.favorite == 0) {
[favoriteButton setSelected:YES];
favoriteButtonSelected = 1;
[favoriteButtonImage setImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateNormal];
self.recipe.favorite = [NSNumber numberWithInteger:1];
}else {
[favoriteButton setSelected:NO];
favoriteButtonSelected = 0;
[favoriteButtonImage setImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];
self.recipe.favorite = [NSNumber numberWithInteger:0];
}
NSManagedObjectContext *context = recipe.managedObjectContext;
NSError *error;
if (![context save:&error]) {
NSLog(@"Tried to save favorite Unresolved error %@, %@", error, [error userInfo]);abort();
}
}
Обновлен:
Это проблема, что я не обновил базу данных? Я искал вокруг и нашел следующий метод, где я должен включить это в код?
<code>[context refreshObject:recipe mergeChanges:NO];
Может кто-нибудь помочь, пожалуйста? Спасибо!