swift3 – 从ios 10中的ios app widget扩展中的Coredata获取

前端之家收集整理的这篇文章主要介绍了swift3 – 从ios 10中的ios app widget扩展中的Coredata获取前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图从我的主应用程序的coredata数据库获取实体,并在我的应用程序小部件Extention中显示它们.但是,提取始终从我的数据库返回空结果.可以帮助我. Swift 3,ios 10.
解决了创建应用程序组后,我创建了NSPersistentContainer的子类,并覆盖类方法defaultDirectory()以返回共享应用程序组目录.还要覆盖init(name:String,managedObjectModel model:NSManagedObjectModel).然后在coredata堆栈中,使用创建的PersistentContainer类的新实例替换样板persistent persistentcontainer代码.
  1. import UIKit
  2. import CoreData
  3. class PersistentContainer: NSPersistentContainer{
  4. override class func defaultDirectoryURL() -> URL{
  5. return FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.bundleId.SomeApp")!
  6. }
  7.  
  8. override init(name: String,managedObjectModel model: NSManagedObjectModel) {
  9. super.init(name: name,managedObjectModel: model)
  10. }
  11. }

然后在CoreDataStack Code *中的任何地方,可以在Appdelegate或其自己的文件中.我的文件名为CoredataStack

  1. static var persistentContainer:PersistentContainer = {
  2. let container = PersistentContainer(name: "SomeApp",managedObjectModel: CoreDataStack.managedObjectModel)
  3. container.loadPersistentStores(completionHandler: { (storeDescription:NSPersistentStoreDescription,error:Error?) in
  4. if let error = error as NSError?{
  5. fatalError("UnResolved error \(error),\(error.userInfo)")
  6. }
  7. })
  8.  
  9. return container
  10. }()

希望这会有所帮助

猜你在找的Swift相关文章