【问题标题】: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]。谓词的逻辑相同。

标签: ios objective-c cocoa-touch nspredicate


【解决方案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];

【讨论】:

    猜你喜欢
    • 2013-09-06
    • 2021-09-29
    • 2017-03-31
    • 2015-03-20
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    相关资源
    最近更新 更多