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代码.
import UIKit
import CoreData
class PersistentContainer: NSPersistentContainer{
     override class func defaultDirectoryURL() -> URL{
    return FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.bundleId.SomeApp")!
}

override init(name: String,managedObjectModel model: NSManagedObjectModel) {
    super.init(name: name,managedObjectModel: model)
}
}

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

static var persistentContainer:PersistentContainer = {
    let container = PersistentContainer(name: "SomeApp",managedObjectModel: CoreDataStack.managedObjectModel)
    container.loadPersistentStores(completionHandler: { (storeDescription:NSPersistentStoreDescription,error:Error?) in
        if let error = error as NSError?{
            fatalError("UnResolved error \(error),\(error.userInfo)")
        }
    })

    return container
}()

希望这会有所帮助

猜你在找的Swift相关文章