CoreData метод сохранения не работает - PullRequest
0 голосов
/ 28 июля 2010

Я создаю приложение для моего iPhone, используя coredata.

У меня есть viewcontroller с объектом, я хочу сохранить этот объект в моем FavoriteViewController. Нажав кнопку «Избранное», я хочу, чтобы мой объект был сохранен в managedObjectContext, но я получаю следующую ошибку:

Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Попытка выполнить другую операцию с уже выполняемой выборкой». *

Мой код:

// Step 1: Create Object
Favorite * newFavorite = (Favorite*)[NSEntityDescription insertNewObjectForEntityForName:@"Favorite" inManagedObjectContext:managedObjectContext];

// Step 2: Set Properties       
    newFavorite.name = @"Company";

    NSLog(@"%@",newFavorite);

// Step 3: Save Object

    NSError *error = nil;
    if (![newFavorite.managedObjectContext save:&error]) { // this is where the program crash
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

Я не уверен, что я делаю неправильно.

Ответы [ 2 ]

0 голосов
/ 23 августа 2011

Вы, вероятно, что-то изменили в своих таблицах.Если это так, попробуйте использовать исходные значения для таблицы Z_METADATA (Z_VERSION, Z_UUID, Z_PLIST), Z_PRIMARYKEY (Z_ENT) ...

0 голосов
/ 29 июля 2010

Я предполагаю, что у вас есть элемент пользовательского интерфейса, такой как таблица, который активирует выборку при изменении пользовательского интерфейса.Например, если у вас есть контроллер извлеченных результатов, любая прокрутка таблицы может активировать извлечение контроллера извлеченных результатов.

Вы не можете изменить коллекцию во время итерации по этой коллекции, потому что число итераций изменяется во время итерации.Выборка перебирает коллекцию объектов, соответствующих ее сущности и предикату.Если вы вставите объект во время работы извлечения, вы получите ошибку.

Обычно вы видите эту проблему с несколькими потоками, но я думаю, что пользовательский интерфейс может вызвать проблему при правильном наборе обстоятельств.

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