【问题标题】:NSPredicate key inside NSManagedObject class relationshipNSManagedObject 类关系中的 NSPredicate 键
【发布时间】:2015-04-24 14:48:13
【问题描述】:

我有一个NSArray 这个NSManagedObject 类让我们称之为People,里面有一个与另一个NSManagedObject 类的关系让我们称之为Car,我想谓词第一个NSArray类,它将为我提供汽车的 ID。我是这样做的:

DbCar *c = [self.cars firstObject];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"car.idNum == %@", c.idNum.stringValue];
NSArray *sorted = [self.mainData filteredArrayUsingPredicate:predicate];
self.sortedData = sorted;

self.mainData 是一个 NSArray 持有“人”NSManagedObject

由于某种原因,我总是得到 nil。

提前致谢。

【问题讨论】:

  • 您的谓词正在尝试匹配DbCar 实例上名为car 的属性。这似乎可能不正确,但无法确定。 DbCar 是否有 car 属性?

标签: ios objective-c core-data nspredicate nsmanagedobject


【解决方案1】:

对于NSNumber 类型的属性不需要传递该数字的stringValue 属性。直接将该数字对象本身作为参数传递给谓词,如下所示:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"car.idNum == %@", c.idNum];

这会有所帮助!

【讨论】:

  • 我只是发现我不需要发送NSNumberstringValue,我可以发送NSNumber 本身或者它是integerValue
  • 是的,你只需要发送`NSNumber`作为参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
相关资源
最近更新 更多