Gab*_*ega 6 core-data nspredicate ios
我在使用时遇到了一些麻烦NSPredicate
predicateWithFormat:argumentArray
:.在此示例中,serverIDList
是字符串数组.结果是一个包含NSManagedObjects
名为"flid"的属性的数组,该属性是一个字符串.
NSMutableString *predicateString = [[NSMutableString alloc] init];
[predicateString appendString:@"(flid IN %@)"];
[results filterUsingPredicate:[NSPredicate predicateWithFormat:predicateString argumentArray:serverIDList]];
Run Code Online (Sandbox Code Playgroud)
问题是[NSPredicate predicateWithFormat:predicateString argumentArray:serverIDList]
评估为"flid IN'2155'",这只是数组的第一个值serverIDList
.我似乎无法获得谓词来评估整个数组.这里有什么东西不见了吗?
谢谢!
Mar*_*n R 26
[NSPredicate predicateWithFormat:@"(flid IN %@)" argumentArray:serverIDList]
Run Code Online (Sandbox Code Playgroud)
相当于
[NSPredicate predicateWithFormat:@"(flid IN %@)", id1, id2, ..., idN]
Run Code Online (Sandbox Code Playgroud)
其中id1
,...,idN
是数组的元素serverIDList
.这应该解释为什么只评估第一个元素.
你可能想要的是什么
[NSPredicate predicateWithFormat:@"(flid IN %@)", serverIDList]
Run Code Online (Sandbox Code Playgroud)
备注:我建议不要先将谓词创建为字符串.引用或逃避错误的可能性非常高.仅predicateWithFormat
用于常量格式字符串.如果必须在运行时动态组合谓词,请使用NSCompoundPredicate
.
归档时间: |
|
查看次数: |
8167 次 |
最近记录: |