ошибка основных данных: завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Невозможно выполнить сопоставление регулярному выражению для объекта 0 - PullRequest
0 голосов
/ 09 января 2012

Я создаю любимую функцию основных данных. У меня есть любимый атрибут с типом логическое в таблице рецептов. Есть 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]; 

Может кто-нибудь помочь, пожалуйста? Спасибо!

1 Ответ

2 голосов
/ 24 апреля 2012

Попробуй поставить [NSFetchedResultsController deleteCacheWithName:@"root"];

в

<code>- (NSFetchedResultsController *)fetchedResultsController{
...} 

Это решило мне проблему. Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...