我正在尝试创建一个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)像在父应用程序中一样创建持久性存储协调器.
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 {}