如何在核心数据中为唯一用户保存聊天并在需要时快速获取

时间:2018-08-26 10:11:25

标签: ios swift core-data

根据我的要求,我必须将用户的所有聊天记录保存在具有userid的核心数据中,然后再次访问用户页面时,必须通过用户ID提取以前的聊天记录。

我有具有msg,userType和time属性的聊天实体。 enter image description here

我必须将其保存在Users实体中,就像用户的每条消息(聊天对象)应保存在Users中一样,并且可以使用核心数据中的user的唯一ID进行重新提取。

enter image description here

以下我用于保存数据的代码。

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?
}

感谢您的帮助

0 个答案:

没有答案