coredata - deliver / setup default data

前端 未结 2 940
半阙折子戏
半阙折子戏 2020-12-21 11:30

I use coreData in my iOS App. It\'s possible, that the user Add, Delete Data into the Database. I have to deliver default data ( some different data-sets ). At the moment, I

相关标签:
2条回答
  • 2020-12-21 11:58

    Yes, apple does allow shipping a database populated by default. the standard way to do it is to ship a default database in your bundle, then at launch time check if there is a database in your application documents directory, and if it does not exist, then copy the database from your bundle to the documents directory.

    0 讨论(0)
  • 2020-12-21 12:12

    There is nothing wrong with this approach and it can't be a reason for rejection. There is also another way to do it. You can create the database the way you do it now, copy the .sqlite file and provide it as your default database. Then copy it on app first run. The following code will do it:

        NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent: @"YourDBName.sqlite"];
        if (![fileManager fileExistsAtPath:storeURL.path]) {
            NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"YourDBName" ofType:@"sqlite"];
            if (defaultStorePath) {
                [fileManager copyItemAtPath:defaultStorePath toPath:storeURL.path error:NULL];
            }
        }
    

    With this approach you will not need to include your csv file in your bundle.

    0 讨论(0)
提交回复
热议问题