Тестирование основных данных на iPhone без подключения к Xcode - PullRequest
0 голосов
/ 20 декабря 2011

Запуск приложения на iPhone работает нормально, но только если он остается подключенным к Mac / связанным с Xcode.Если я попытаюсь запустить его после того, как я отключил его (после остановки Run), Core Data больше не будет работать.Ни конфигурация Build , ни конфигурация Debug не работают (Product -> Изменить схему ... -> Запустить xy.app -> Информация -> Создать конфигурацию).Мои настройки xcdatamodel: Тип файла: Основная модель данных по умолчанию Расположение: Относительно группы

Есть идеи?

Приветствия, Saeppi


Извините, что не уточнилмоя проблема.Никаких сбоев, изменений, которые, как я думал, я внес в модель базовых данных, просто не произошло.Читая немного больше о SQLite и о том, как он работает с Core Data, я признаю, что допустил очень глупую ошибку: я скопировал файл * .sqlite из учебника, импортировал его в свой проект Xcode и скопировал в папку приложения (ипотом переименовать это конечно).При удалении файла sqlite возникает следующая ошибка:

ошибка: /Users/myName/Documents/myApp/myApp.sqlite: такого файла или каталога нет

Мой PersistentStoreCoordinator:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

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

NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"MyApp.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]);

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ErrorKey", nil)
                                                    message:NSLocalizedString(@"ErrorDBKey", nil)
                                                   delegate:nil   
                                          cancelButtonTitle:@"OK"   
                                          otherButtonTitles:nil, nil];   
    [alert show];   
    [alert release];   
}    
return persistentStoreCoordinator;

}

и каталог моего приложения:

- (NSString *)applicationDocumentsDirectory {

    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

Я думал, что Core Data создаст новый файл sqlite, как только он будетудалено из папки.В чем ошибка в рассуждениях?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2011

Скорее всего, вы открываете файл БД в основном комплекте.Основной комплект только для чтения.Ваш файл БД должен быть в папке с документами приложения.

Оформить заказ ТАК

0 голосов
/ 20 декабря 2011

Вылетает ли он на устройстве?Вы можете подключить устройство и проверить отчет о сбое в журналах устройства. Это даст вам лучшее представление о том, что происходит. Во-вторых, попытайтесь выйти из приложения из фонового режима и запустить.

Я бы предложил проверить журналы сбоя на устройстве., если он не может создать или найти основные данные, он выдаст следующее сообщение: «хранить отсутствует» или что-то в этом роде.

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