NSPersistentStoreCoordinator Crash - PullRequest
       3

NSPersistentStoreCoordinator Crash

1 голос
/ 14 октября 2011

Я недавно обновился с xcode 3.x до 4.2, и у меня возникают проблемы с основными данными, когда я запускаю приложения в 4.2.Я также обновился до iOS 5, так что, возможно, проблема здесь, я не совсем уверен.

Приложения работали нормально в 3.x, но вылетали в 4.2.Эта проблема возникает всякий раз, когда я пытался получить доступ к объекту NSPersistentStoreCoordinator.Вот пример области, в которой происходит сбой приложения.

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

    if (persistentStoreCoordinator_ != nil) {
        return persistentStoreCoordinator_;
    }

    NSURL *storeURL = [[self applicationDocumentsDirectory]    URLByAppendingPathComponent:@"GraffitiMap.sqlite"];

    NSError *error = nil;
    persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }    

    return persistentStoreCoordinator_;
}

Он обналичивается в строке: persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

Что мне не хватает при переводе приложения из xcode 3.x в4.2 или обновление до iOS 5?

1 Ответ

1 голос
/ 20 октября 2011

Я сталкивался с этой проблемой до того, как обновился до Xcode 4.2 и iOS 5.

Мое приложение держало сбой на [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; с ошибкой EXEC_BAD_ACCESS, я провел много тестов, чтобы выяснить, где проблема. Наконец, после того как я удалил все запросы на выборку в модели данных, ошибка исчезла и произнесла еще одну ошибку «имя объекта не найдено». Поэтому я пытался удалить запрос на выборку один за другим и снова и снова проверять, чтобы выяснить, что это за «плохой» запрос на выборку. И я обнаружил, что есть два запроса на выборку, которые делают одно и то же (имеют одинаковые критерии для одного и того же объекта), хотя они имеют разные имена, чем один из них, и я удалил, ошибка была полностью исправлена.

Сегодня я снова сталкиваюсь с этой проблемой, и я уверен, что на этот раз нет повторяющегося запроса на выборку, но ошибка все еще остается. Я думал, что Apple добавит несколько проверок на CoreData, как это в новой iOS5, но не могу найти никаких документов, которые описывают это.

Надеюсь, это поможет вам

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