我正在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/