0

这个问题是我上一个问题的持续问题

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

@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 not found in entity

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

任何帮助将不胜感激,顺便说一句,编码块有一些问题,请原谅我。

4

1 回答 1

0

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

于 2013-05-17T19:00:17.260 回答