如何为Entity的自定义属性创建谓词

时间:2013-05-17 13:42:50

标签: core-data properties entity nspredicate

这个问题是my previous question正在进行的问题。

我想创建一个谓词,通过我的自定义属性过滤实体,这是实体类

@interface Expense : NSManagedObject

@property (nonatomic, retain) NSDate * date;
@property (nonatomic, retain) NSNumber * amount;
@property (nonatomic, retain) NSString * category;
@property (nonatomic, retain) NSString * note;
@property (nonatomic, retain) NSString * paidby;

//customized property
@property (readonly) int year;
@property (readonly) int month;
@property (readonly) NSString *yyyy_mmm;
@property (readonly) NSString *mm_yyyy;

@end

这是我的谓词:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"yyyy_mmm == %@", header];

运行时:

  

错误消息NSInvalidArgumentException',原因:' keypath yyyy_mmm   在实体中找不到

这并非完全出乎意料,我搜索并发现它与键值,听众的东西有关。但我不知道该怎么做。

任何帮助都会如此受到赞赏,而BTW编码区有一些问题,请原谅我。

1 个答案:

答案 0 :(得分:0)

将您需要在谓词中使用的任何属性作为数据模型中实体的实际键。如果你可以直接设置值,那就太好了。如果不是,您要么要实施willSave,要么使用KVO并从实体中的其他值更新谓词键值。