根据我的要求,我必须将用户的所有聊天记录保存在具有userid的核心数据中,然后再次访问用户页面时,必须通过用户ID提取以前的聊天记录。
我必须将其保存在Users实体中,就像用户的每条消息(聊天对象)应保存在Users中一样,并且可以使用核心数据中的user的唯一ID进行重新提取。
以下我用于保存数据的代码。
func saveDataToModel(msg:MessagesData)
{
let chats = Chats(context: context!)
chats.msg = msg.message
chats.userType = msg.userType
users?.userChats = chats
if let ids = viewModel?.userSelected?.id
{
users?.id = Int16(ids)
}
//saveContext()
do {
try context?.save()
} catch {
print("Failed saving")
}
}
下面的代码用于提取
func getDataFromCoreData() {
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
request.returnsObjectsAsFaults = false
do {
let result = try context?.fetch(request)
if (result != nil) {
for data in (result as? [NSManagedObject])! {
print("data",data)
}
}
} catch {
print("Failed")
}
}
下面是结构
struct MessagesData {
var message:String?
var userType:String?
}
感谢您的帮助