gpt4 book ai didi

swift3 - 从 ios 10 中的 ios 应用小部件扩展中的核心数据中获取

转载 作者:行者123 更新时间:2023-12-04 12:05:11 29 4
gpt4 key购买 nike

我试图从我的主应用程序的 coredata 数据库中获取实体,并将它们显示在我的应用程序小部件扩展中。然而,获取总是从我的数据库中返回一个空结果。谁能帮帮我。 swift 3,iOS 10。

最佳答案

我解决了。创建App Group后,我创建了NSPersistentContainer的子类,覆盖类方法defaultDirectory()返回共享的App Group目录。还要覆盖 init(name: String, managedObjectModel 模型: NSManagedObjectModel)。然后在 coredata 堆栈中,用创建的 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 代码中*无论在 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
}()

希望这会有所帮助

关于swift3 - 从 ios 10 中的 ios 应用小部件扩展中的核心数据中获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075631/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com