Я пытаюсь получить информацию из моей базы данных sqlite с магической записью. Следует отметить, что это приложение работало до iOS9 без каких-либо проблем. С iOS9 он падает, поэтому я перерабатываю его. Я установил cocoapods и установил MagicalRecord через стручки (которые отлично работали).Использование MagicalRecord - Невозможно получить данные из предварительно загруженного файла .sqlite
В моем файле AppDelegate я предварительно загружаю БД данными из файла .sqlite, который у меня есть, и устанавливаю стек CoreData с помощью MagicalRecord.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self copyDefaultStoreIfNecessary];
//Copy the preloaded DB to the default path of the application's DB (REQUIRED)
NSArray *paths = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
NSURL *documentPath = [paths lastObject];
NSURL *storeURL = [documentPath URLByAppendingPathComponent:@"Trips_54Miles.sqlite"];
if (![[NSFileManager defaultManager] fileExistsAtPath:[storeURL path] ]) {
NSURL *preloadURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Trips_54Miles" ofType:@"sqlite" ]];
NSError *err = nil;
if (![[NSFileManager defaultManager] copyItemAtURL:preloadURL toURL:storeURL error:&err]){
NSLog(@"Error: Unable to copy preloaded db.");
}
}
//Setup Magical Record with the CoreData Stack
[MagicalRecord setupCoreDataStackWithStoreNamed:@"Trips_54Miles.sqlite"];
NSArray *schools = [MetaMiles MR_findAllSortedBy:@"beg_school" ascending:YES];
NSLog(@"Default Array: %@", schools);
return YES;
}
Массив 'школы', всегда отображается в журнале, как это:
'По умолчанию Массив:()'
не показывает никаких записей.
Любопытно, почему. Я проверил файл .sqlite, который я загружаю, и он загружает всю соответствующую информацию.
Любые идеи о том, куда я должен идти, чтобы вытащить информацию, будут оценены.
Возможно, 'copyDefaultStoreIfNecessary' не может скопировать файл? Это наиболее очевидная потенциальная проблема в вашем коде. –
У меня он установлен для регистрации сообщения, если он не может скопировать файл - я не вижу сообщение об ошибке в консоли. – Hanny
Копирование файлов журнала SQLite или только основного файла SQLite? –