HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 基于SQL IN()函数为Core Data创建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

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。