2015-10-27 4 views
1

Я решил улучшить свой первоначальный дизайн и предварительно заполнить некоторые части моего Приложения. Я пытаюсь получить SQLite следует читать после этого урока: http://www.appcoda.com/core-data-preload-sqlite-database/Модернизация моего приложения для включения предварительно заполненных данных

Однако строка кода, которая выглядит следующим образом:

if !NSFileManager.defaultManager().fileExistsAtPath(url.path!) { 
    let sourceSqliteURLs =   [NSBundle.mainBundle().URLForResource("CoreDataDemo", withExtension: "sqlite")!, NSBundle.mainBundle().URLForResource("CoreDataDemo", withExtension: "sqlite-wal")!, NSBundle.mainBundle().URLForResource("CoreDataDemo", withExtension: "sqlite-shm")!] 

    let destSqliteURLs = [self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite"), 
     self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-wal"), 
     self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-shm")] 

    var error:NSError? = nil 
    for var index = 0; index < sourceSqliteURLs.count; index++ { 
     NSFileManager.defaultManager().copyItemAtURL(sourceSqliteURLs[index], toURL: destSqliteURLs[index], error: &error) 
    } 
} 

не совсем подходит для моего приложения, как я использую общий папке приложения. Проблема, с которой я сталкиваюсь, заключается в том, что приложение загружается отлично и передает строки кода, но когда я просматриваю страницу, на которой отображается информация, ничего нет. Я загрузил считыватель sqlite, чтобы узнать, есть ли в базе данных объекты, и поэтому я знаю, что это не проблема. Какие изменения я должен внести в эти строки кода, чтобы группа приложений share могла выполнить эту функцию правильно? Каталог в общей App группы что-то вроде этого:

let directory = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.groupname.appname") 

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

ответ

0

Может быть, я что-то в ваших вопросах не хватает, но если все, что вам нужно сделать, это изменить папку назначения, а затем просто изменить эти строки ...

let destSqliteURLs = [ 
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite"), 
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-wal"), 
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-shm")] 

в это ...

let baseURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.groupname.appname") 
let destSqliteURLs = [ 
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite"), 
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite-wal"), 
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite-shm")] 
+0

Я пробовал делать это сегодня утром, но безуспешно. По какой-то причине магазин фактически не загружает это изменение? Приложение, похоже, не распознает эти изменения и просто загружает пустой магазин, как будто ничего не произошло. Я не вижу, что я делаю неправильно, так как я обновляю синтаксис правильно для swift 2, а также проверял, что на самом деле хранилище содержит базовые данные. – cruelty

Смежные вопросы