我正在尝试创建一个 Today Extension Widget 来显示小部件中存储的数据。
这是我做的;
- 添加了新的今日小部件目标
- 为小部件设置 UIViewController
- 为应用和扩展启用应用组
现在我遇到了障碍,我不确定检索和显示简单的获取数据数组的最佳方法。
Swift 教程很少,而且它们通常不使用核心数据。
在主应用程序项目中,我获取数组。
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
let request = NSFetchRequest(entityName: "Objects")
do {
try
self.objectsArray = moc.executeFetchRequest(request) as! [Objects]
} catch {
}
如何使用 NSUserDefaults
来存储对象数组,然后在今天的小部件扩展中使用?或者甚至是字符串值数组。
最佳答案
1) 获取数据库的url
var containerPath: String = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier(YOUR_SECURITY_APP_GROUP).path
var sqlitePath: String = "(containerPath)/("database.sqlite")"
2) 像在父应用程序中一样创建 Persistent Store Coordinator。
3) 为您的托管对象上下文设置它
context = NSManagedObjectContext()
context.persistentStoreCoordinator = coordinator
4) 像在父应用程序中一样检索对象
let moc = context
let request = NSFetchRequest(entityName: "Objects")
do {
try self.objectsArray = moc.executeFetchRequest(request) as! [Objects]
} catch {}
关于ios - 如何使用 NSUserDefaults 与包含应用程序共享数据? - 今天扩展小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951209/