gpt4 book ai didi

ios - 在 CoreData ios swift3 中仅获取表的几个属性

转载 作者:行者123 更新时间:2023-11-30 12:55:30 26 4
gpt4 key购买 nike

我将 coreData 实体定义为

enter image description here

enter image description here

在 TTFinds 中

@nonobjc public class func fetchRequest() -> NSFetchRequest<TTFinds> {
return NSFetchRequest<TTFinds>(entityName: "TTFinds");
}

我正在尝试将 TTFinders 列表获取为

    let request: NSFetchRequest<TTFinds> = TTFinds.fetchRequest()        
do {
let result = try appDel.persistentContainer.viewContext.fetch(request)

可以看出,TTFinds 获取其父 TTArea 对象。不过我只想得到几列。假设仅使用 namecreationDate。如何做到这一点?

我已经尝试过

let request: NSFetchRequest<TTFinds> = TTFinds.fetchRequest()
request.propertiesToFetch = NSArray.init(objects: "name", "creationDate", "image", "latitude", "longitude",
"area.name") as? [Any];

然而,area.name 给出了错误。

最佳答案

忘记propertiesToFetch并只获取整个对象。

首先,如果您使用字典结果类型,则只能检索选择性属性。它会让你的代码变得更加繁琐和冗长,而且效率没有任何提高。

其次,如果您只是获取对象,即使对象数量很多,Core Data 也会“在幕后”进行各种优化,然后只获取所需的内容。只需访问您需要的属性即可触发此操作。

因此,假设您仅获取某些属性的目的是为了节省内存或减少性能瓶颈,那么在实际遇到这些瓶颈之前不必担心。

注意:你们的关系应该是反向关系!

关于ios - 在 CoreData ios swift3 中仅获取表的几个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40448201/

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