NSPredicate 如何测试一个值是不是包含其他两个值之一?
Posted
技术标签:
【中文标题】NSPredicate 如何测试一个值是不是包含其他两个值之一?【英文标题】:How can an NSPredicate test that a value contains one of two other values?NSPredicate 如何测试一个值是否包含其他两个值之一? 【发布时间】:2017-11-23 00:36:16 【问题描述】:我正在尝试写一个 NSPredicate
来表达:“如果 uid 包含 myID OR targetUser”
但是,无论我尝试什么,它似乎都不想工作。如何编辑下面的行以执行上述操作?
我当前的代码:
NSPredicate *p3 = [NSPredicate predicateWithFormat:@"uid contains[cd] %@", myID];
我尝试了以下,但没有骰子:
NSPredicate *p3 = [NSPredicate predicateWithFormat:@"uid contains[cd] %@ OR contains[cd] %@", myID, targetUser];
【问题讨论】:
如果你写在“代码”而不是谓词中,你会写if ([uid containsCD:myID] || (uid containsCD:targetUser])
而不是if ([uid containsCD:myID || targetUser])
,其中containsCD:
相当于contains[cd]
。谓词的逻辑相同。
【参考方案1】:
NSPredicate *p3 = [NSPredicate predicateWithFormat:@"(uid contains[cd] %@) OR (uid contains[cd] %@)", myID, targetUser];
【讨论】:
全行好吗?不能在我的当前行中使用弯括号? @Brittany 你的意思是?【参考方案2】:试试这个:
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"uid contains[cd] %@ OR uid contains[cd] %@", myID, targetUser];
【讨论】:
以上是关于NSPredicate 如何测试一个值是不是包含其他两个值之一?的主要内容,如果未能解决你的问题,请参考以下文章