ios - 核心数据错误:如果没有在范围内使用NSManagedObjectContext,则无法获取

标签 ios swift core-data xmppframework

我正在Swift中使用XMPPFramework库,该库使用Core Data提供消息历史记录存储。我正在尝试使用以下功能从存储请求已归档的消息:

func getChatHistory() {

    guard let context = xmppMessageStorage.mainThreadManagedObjectContext else {return}
    var entityDescription = NSEntityDescription.entity(forEntityName: "XMPPMessageArchiving_Message_CoreDataObject", in: context)
    var request = NSFetchRequest<NSFetchRequestResult>(entityName: "XMPPMessageArchiving_Message_CoreDataObject")
    request.entity = entityDescription
    do {
        var messages = try request.execute()
        print("Archived Messages: \n\(messages)")
    } catch let error {
        print("Error fetching chat history: \(error)")
    }

}

但是,当我执行函数时,出现以下错误:

Error Domain = NSCocoaErrorDomain代码= 134060“核心数据错误
发生。“UserInfo = {message =如果没有
作用域中的NSManagedObjectContext}

我无法理解为什么会这样,因为我在代码中正确设置了上下文。如果有人可以帮助我了解这里的问题,我将不胜感激。

最佳答案

尝试更换

request.entity = entityDescription
do {
  var messages = try request.execute()
  print("Archived Messages: \n\(messages)")
} catch let error {
  print("Error fetching chat history: \(error)")
}


do {
  let messages = try context.fetch(request)
  print("Archived Messages: \n\(messages)")
} catch {
  print("Error fetching chat history:", error)
}

关于ios - 核心数据错误:如果没有在范围内使用NSManagedObjectContext,则无法获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60072103/

相关文章:

ios - 如何通过TableCellView "Custom"的switchButton获取rowIndex

swift - 如何保存相关的核心数据对象以快速解析

iphone - 在排序的核心数据获取结果中排序?

ios - 如何使用 Core Data 和 iCloud 在两个设备之间同步数据?

ios - 缩小弹出窗口的内容大小时防止伪影

ios - 网络服务注册错误

swift - 在范围内找不到 'OSSignposter'

ios - 包产品 'MyLibrary' 不能用作此目标的依赖项,因为它使用了不安全的构建标志

iphone - iOS 5中的Facebook SDK 3.5需要Social.framework

iphone - iOS 找到核心数据中最常见的记录?