【问题标题】:NSFetchRequest not working with predicateNSFetchRequest 不适用于谓词
【发布时间】:2012-08-30 14:46:27
【问题描述】:

我有这个代码:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entry"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"version == %@", @"1.0"];

[request setPredicate:predicate];

NSArray *results = [managedObjectContext executeFetchRequest:request error:nil];

实体“Entry”有一个名为“version”的属性,它是一个字符串。上面的谓词似乎不仅仅返回字符串为“1.0”的条目,而是返回一些设置为“1.1”的条目。

我做错了吗?

【问题讨论】:

  • 你试过用 = 而不是 == 吗?
  • 谓词对我来说看起来不错。你试过别的吗?

标签: iphone objective-c ios nspredicate nsfetchrequest


【解决方案1】:

尝试在谓词表达式周围放置圆括号 ()

"(version == %@)"

【讨论】:

    【解决方案2】:

    看看apple doc

    如果是==,请尝试使用like 或:

    NSPredicate *predicate = [NSPredicate predicateWithFormat:  
                                           @"(version == %@)", @"1.0"];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      相关资源
      最近更新 更多