ios – 基于SQL IN()函数为Core Data创建NSPredicate

ios – 基于SQL IN()函数为Core Data创建NSPredicate,第1张

概述我有一个场景,我必须根据给定列的多个值从Core Data中获取多个记录.用于此目的的常见SQL查询将是 SELECT * FROM suppliers WHERE supplier_name in ('IBM', 'Hewlett Packard', 'Microsoft'); 我无法弄清楚我是如何使用原生的IN()函数来达到这个目的的. 我现在创建NSPredicate的方式似乎是多余的,如 我有一个场景,我必须根据给定列的多个值从Core Data中获取多个记录.用于此目的的常见SQL查询将是

SELECT * FROM suppliers WHERE supplier_name in ('IBM','Hewlett Packard','Microsoft');

我无法弄清楚我是如何使用原生的IN()函数来达到这个目的的.

我现在创建nspredicate的方式似乎是多余的,如下所示.

NSMutableArray *predicateArray = [NSMutableArray array];[skus enumerateObjectsUsingBlock:^(Nsstring *sku,NSUInteger IDx,BOol *stop) {    [predicateArray addobject:        [Nsstring stringWithFormat:@"(AudioSKU == \"%@\")",sku]];}];Nsstring *predicateString = [predicateArray                                   componentsJoinedByString:@" OR "];nspredicate *predicate = [nspredicate                                   predicateWithFormat:predicateString];

是否有正确的方法使用nspredciate或NSExpression来使用sql的IN函数?请赐教.

解决方法 nspredicate中也有类似的功能

NSArray *skus = @[];nspredicate *predicate = [nspredicate                               predicateWithFormat:@"AudioSKU IN %@",skus];

而且你也不能像通常的字符串一样处理谓词字符串.您不能形成字符串数组并使用它们进行过滤.如果有多个连接,请使用NSCompoundPredicate.

一个很好的参考Using NSPredicate to filter Data

@H_502_39@ 总结

以上是内存溢出为你收集整理的ios – 基于SQL IN()函数为Core Data创建NSPredicate全部内容,希望文章能够帮你解决ios – 基于SQL IN()函数为Core Data创建NSPredicate所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存