【问题标题】:CoreData with NSPredicate and OR condition具有 NSPredicate 和 OR 条件的 CoreData
【发布时间】:2014-10-21 18:56:58
【问题描述】:

我有一个关于 NSPredicate 的问题。

我使用这个谓词来获取status=="Compare"的所有结果

NSFetchRequest *request = [[NSFetchRequest alloc] init];
        NSEntityDescription *entity = [NSEntityDescription @"MyEntity"
                                                  inManagedObjectContext:context];
        [request setEntity:entity];

        NSPredicate *predicate =
        [NSPredicate predicateWithFormat:@"status == %@",@"Created"];
        [request setPredicate:predicate];

但现在我会采用状态等于“CreatedORReaded”的所有结果。 我必须如何更改我的谓词?

【问题讨论】:

    标签: ios core-data nspredicate


    【解决方案1】:

    这能解决问题吗?

    [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
      return [[evaluatedObject status] isEqualToString:@"Created"] || [[evaluatedObject status] isEqualToString:@"Readed"];
    }];
    

    【讨论】:

      【解决方案2】:

      试试

      [NSPredicate predicateWithFormat:@"status IN %@",@[@"Created", @"Readed"]];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-21
        • 1970-01-01
        • 2012-05-06
        • 2011-11-06
        • 1970-01-01
        • 1970-01-01
        • 2020-05-22
        • 1970-01-01
        相关资源
        最近更新 更多