iOS如何做预填充Core数据?
Posted
技术标签:
【中文标题】iOS如何做预填充Core数据?【英文标题】:iOS how to do pre-filled Core data? 【发布时间】:2012-07-04 16:14:09 【问题描述】:我需要我的应用程序工作如下:
1- 用户下载并启动应用程序。
2- 应用程序将自动用特定记录填充(基于核心数据)。 3- 应用程序可以正常工作。
4- 当用户关闭应用程序并重新启动它时。
5_ 应用程序将不会自动用特定记录填充核心数据,因为它已经存在。
6- 用户将无法添加/删除/更新数据。
是否有一种仅使用核心数据并被 Apple 接受的好技术来做到这一点。
【问题讨论】:
【参考方案1】:-
在模拟器中填充数据
从模拟器文件夹复制 SQLITE 数据库
将数据库作为资源添加到您的项目中。
在初始化您的 Core Data 堆栈之前执行以下操作:
代码:
// Put down default db if it doesn't already exist
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:storePath])
NSString *defaultStorePath = [[NSBundle mainBundle]
pathForResource:@"MyDataFile" ofType:@"sqlite"];
if (defaultStorePath)
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
未显示,但很重要:根据 App Store 指南,您预填充数据的所有文件必须标记为“不备份”,否则您将被拒绝。有关如何执行此操作的一些详细信息,请参阅此 SO 问题:Why was my application still rejected after excluding files from iCloud backup using this code?
【讨论】:
其实他不想添加/删除/修改,直接从app bundle中读取就可以了,不用担心这些问题。【参考方案2】:我可以告诉你一种非常简单的方法。在应用程序委托中,在 NSUserDefaults 中创建一个变量,并在第一次加载应用程序时更改其值。然后根据 NSUserDefaults 的值,在 Core Data 存储中填充您想要的数据。这只会发生一次,因为 NSUserDefaults 变量的值不会再次改变。
【讨论】:
以上是关于iOS如何做预填充Core数据?的主要内容,如果未能解决你的问题,请参考以下文章
使用 SwiftUI 2.0 和 Core Data 预填充数据
使用 Core Data 一对多关系从 JSON 数组填充 sqlite 数据库
如何在 ASP.NET Core 2.0 Razor 页面中填充下拉列表
了解如何将 UISearchBar 与 Core Data 一起使用