这个问题是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编码区有一些问题,请原谅我。
答案 0 :(得分:0)
将您需要在谓词中使用的任何属性作为数据模型中实体的实际键。如果你可以直接设置值,那就太好了。如果不是,您要么要实施willSave
,要么使用KVO
并从实体中的其他值更新谓词键值。