gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 06:52:07 24 4
gpt4 key购买 nike

我的应用程序是一个简单的单词列表共享应用程序。在 CoreData 中有拥有实体 Wordlists 和相关词实体的 Owners 实体。在一个屏幕中,我希望能够通过按下按钮将 wordList 及其相关词和所有者保存到 Parse。然后在另一个屏幕上,我希望能够下载一个 WordList 及其相关词,然后将其保存到核心数据中。在表格中显示列表的名称。我的代码是:

// To save the wordList to Parse:

@IBAction func shareWordList(sender: AnyObject) {

let parseWordList = PFObject(className: "WordList")
parseWordList.setObject("\(wordList?.listName)", forKey: "ListName")
parseWordList.setObject("\(wordList?.owner)", forKey: "Owner")
parseWordList.setObject("\(wordList?.words)", forKey: "Words")
parseWordList.setObject("\(wordList?.isSharedDate)", forKey: "IsSharedDate")
parseWordList.setObject("\(wordList?.isShared)", forKey: "IsShared")
parseWordList.setObject("\(wordList?.createdDate)", forKey: "CreatedDate")
parseWordList.setObject("\(wordList?.isAppList)", forKey: "IsAppList")

parseWordList.saveInBackgroundWithBlock { (succeeded, error) -> Void in
if succeeded {
print("object uploaded")
} else {
print("Error: \(error) \(error?.userInfo)")
}
}

这对大多数项目来说都可以上传,但是与 wordList 相关的词和所有者没有保存。 enter image description here

是否可以在 Parse 中使用这样的关系属性?然后我如何将共享的 wordList 及其所有属性从 Parse 返回到 CoreData?

在此先感谢任何对此提供帮助的人....

最佳答案

此代码 "\(wordList?.words)" 获取关系内容的人类可读描述。那是托管对象的 NSSet 的日志描述。这就是为什么您在解析数据存储中基本上会出现乱码的原因。

您真正想要做的是获取关系,然后请求每个项目的名称。你可以用 KVC 做到这一点。当您拥有它时,它将是一个字符串的 NSSet,您可以使用它来直接存储。

可以说,在解析数据存储中拥有多个与核心数据模型中的实体匹配的不同类会更好。如果这样做,那么您可以处理关系项以在解析数据存储中创建新对象,然后将它们添加(一旦保存)以解析关系。

也可以使用 REST 接口(interface)通过 RestKit 等库进行解析,将解析数据存储内容直接映射到核心数据。

关于swift - 如何保存相关的核心数据对象以快速解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com