Ios 如何在核心数据中为唯一用户保存聊天记录,并在需要时获取
根据我的要求,我必须用userid将用户的所有聊天记录保存在核心数据中,当再次访问用户页面时,我必须通过userid获取之前的聊天记录 我有一个聊天实体,它有msg、userType和time属性。 我必须将其保存在Users实体中,就像用户的每条消息(聊天对象)应该保存在Users中一样,并且可以使用核心数据中唯一的用户ID进行重新蚀刻 下面是我用来保存数据的代码Ios 如何在核心数据中为唯一用户保存聊天记录,并在需要时获取,ios,swift,core-data,Ios,Swift,Core Data,根据我的要求,我必须用userid将用户的所有聊天记录保存在核心数据中,当再次访问用户页面时,我必须通过userid获取之前的聊天记录 我有一个聊天实体,它有msg、userType和time属性。 我必须将其保存在Users实体中,就像用户的每条消息(聊天对象)应该保存在Users中一样,并且可以使用核心数据中唯一的用户ID进行重新蚀刻 下面是我用来保存数据的代码 func saveDataToModel(msg:MessagesData) { let chats
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")
}
}
感谢您的帮助为什么要使用额外的可转换结构而不是核心数据关系?关系要有效得多。为什么不使用更具体的
NSFetchRequest
甚至NSFetchRequest
而不是大多数未指定的NSFetchRequest
?要过滤数据,必须添加谓词。问题出在哪里?
struct MessagesData {
var message:String?
var userType:String?
}