2

我在我的 iOS 应用程序中使用 coreData。用户有可能将数据添加、删除到数据库中。我必须提供默认数据(一些不同的数据集)。目前,我正在通过第一次应用程序启动来创建数据库。我从 csv 文件中读取数据并用它创建数据库。csv 在应用程序沙箱中;coreData (managedDocument) 位于 ApplicationDocument 中(在运行时创建...)。

它非常适合我——但我问我,如果我将应用程序推送到 AppStore,Apple 会允许这样做吗?

4

2 回答 2

2

这种方法没有任何问题,也不能成为拒绝的理由。还有另一种方法可以做到这一点。您可以按照现在的方式创建数据库,复制.sqlite文件并将其作为默认数据库提供。然后将其复制到应用程序首次运行。以下代码将执行此操作:

    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];
        }
    }

使用这种方法,您无需将csv文件包含在您的包中。

于 2012-08-12T14:41:00.907 回答
0

是的,苹果确实允许发送默认填充的数据库。执行此操作的标准方法是在您的包中提供默认数据库,然后在启动时检查您的应用程序文档目录中是否有数据库,如果不存在,则将数据库从您的包复制到文档目录.

于 2012-08-12T14:39:50.767 回答