ios - 如何使用 NSUserDefaults 与包含应用程序共享数据? - 今天扩展小部件

标签 ios arrays swift nsuserdefaults today-extension

我正在尝试创建一个 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/

相关文章:

ios - 如何以编程方式将图像/ View 布局在中心图像周围的圆圈中

ios - 是否可以使用 FBSDKShareKit 在 Facebook 上自动分享帖子?

ios - 打开 UIDocument 时如何显示错误信息?

ios - 使用 Google API 在 Objective C 中查询共享的 Google 日历

c - 在C中用循环填充函数数组

ruby-on-rails - 在 Rails 4 中查询 Postgres 数组类型的任何成员

ios - Firebase Messaging - 卸载不会阻止通知

objective-c - 废弃内存、泄漏、导航 Controller

php - 以特定顺序显示数据库中的数据 : php or mysql?

ios - Deinit 在 vi​​ewControllers 上实现它是一个好习惯吗?