gpt4 book ai didi

swift - 如何在核心数据中使用来自 NSArray 的动态多个 NSPredicate

转载 作者:行者123 更新时间:2023-11-28 15:27:19 25 4
gpt4 key购买 nike

我对核心数据还很陌生。我有包含不同类别文章的数据库。我想从多个类别中获取数据,用户可以即时选择这些类别。现在我有 NSArray,它包含选定的多个类别(从 1 到 n 计数)我想为选定的类别添加谓词,但我无法这样做。据我所知,我添加了 for 循环以在谓词中添加类别,但它不起作用。

for i in 0...(catArray?.count)!-1 {
let str = String(format:"catId = %@",(catArray?.object(at: i) as? NSNumber)!)
predicateString = predicateString+str
}
let dP = NSPredicate(format:"%@",predicateString)
fetchedRequest.predicate=dP;

但是应用程序在获取请求时崩溃了。还有其他方法吗?请帮我解决这个问题。

非常感谢任何帮助。

最佳答案

从给定的数组中选择具有任何类别的对象一个简单的谓词就足够了:

NSPredicate(format: "catId IN %@", catArray)

备注:永远不要使用 String(format:) 来动态构建谓词,因为几乎可以肯定引用和转义是错误的。仅使用 NSPredicate(format:),如有必要,使用 NSCompoundPredicate

关于swift - 如何在核心数据中使用来自 NSArray 的动态多个 NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45073774/

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