Я продолжаю добираться, “сохраняют операционный отказ” после любого изменения на моей Модели данных XCode

Значением по умолчанию для int значений в map является 0. Итак, когда вы выполняете итерацию по x и вызываете m[e]++, расширенная версия будет иметь вид

m[e] = m[e] + 1

Другими словами:

m[e] = 0 + 1

Конечно, если поле повторяется он уже будет на карте (с некоторым значением> 0).

Когда вы проверяете длину карты после цикла, она дает количество уникальных полей в строке.

22
задан Jason Plank 21 November 2011 в 15:11
поделиться

4 ответа

Есть ли у вас параметры NSMigratePersistentStoresAutomaticallyOption и NSInferMappingModelAutomaticallyOption, заданные при создании вашего persistentStoreCoordinator в приложении Delegate?

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

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

    NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"database.sqlite"]];

    NSError *error = nil;
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                             [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                             [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
        // Handle error
    }    

    return persistentStoreCoordinator;
}
50
ответ дан 29 November 2019 в 03:21
поделиться

Если вы получаете только эту ошибку в симуляторе, значит, вы изменили модель данных, и она не удалила файл sqlite, который вы использовали ранее.

Перейдите по адресу: ~/Library/Application Support/iPhone Simulator/User/Applications/

Затем просматривайте папки с именами в формате HEX, пока не увидите свое приложение. Откройте каталог Documents и удалите файл sqlite. Ошибка должна исчезнуть.

30
ответ дан 29 November 2019 в 03:21
поделиться

Удаление и переустановка приложения в симуляторе и устройстве работало для меня.

4
ответ дан 29 November 2019 в 03:21
поделиться

У меня была та же проблема, и она использовалась для работы, пока я не скопировал код в другую папку в Finder и не начал редактировать этот проект, начав получать ошибку. Что исправило, так это то, что у моего другого проекта был координатор магазина с именем xyz.sqlite, у «нового» проекта, над которым я работал, было то же имя, и пришлось изменить его на xyzv2.sqlite (что-то подобное). Нашел ответ здесь: http://www.iphonedevsdk.com/forum/iphone-sdk-development/27268-nspersistentstorecoordinator-has-no-persistent-stores.html

0
ответ дан 29 November 2019 в 03:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: