gpt4 book ai didi

swift - Realm Swift - 按 ID 查找

转载 作者:行者123 更新时间:2023-12-05 01:37:14 24 4
gpt4 key购买 nike

我需要使用 id 列表查询 Realm 对象,id 是对象的主键。我尝试了以下方法:

// Query a list of Dogs by their _ids
let doggoIds = ["1", "2", "3", "1", "2"]
realm.objects(Dog.self).filter("_id IN %@", doggoIds)
// Result: [Dog1, Dog2, Dog3]

id 列表包含重复项,但如您所见,结果是一个唯一的 Dog 对象列表。

我想知道是否有人可以想出一种不同的方式来编写此查询,以便我们得到一个不错的 Results<Dog>从包含重复项的 ID 列表中收集。谢谢!

最佳答案

Realm 结果包含独特的对象,因此最简单的解决方案是查询每只狗并将结果添加到数组中。 CompactMap 在这方面做得很好,因为它过滤掉了 nil。

let listOfDogsToFind = ["Fido", "Dino", "Sport", "Fido", "Cupid"]

let dogArray = listOfDogsToFind.compactMap { dogName -> DogClass? in
if let result = realm.objects(DogClass.self).filter("dog_name == %@", dogName).first {
return result
}
return nil
}

for dog in dogArray {
print("dog name: \(dog.dog_name)")
}

假设丘比特不存在,这是输出

dog name: Fido
dog name: Dino
dog name: Sport
dog name: Fido

关于swift - Realm Swift - 按 ID 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61145079/

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