1
我有这样的核心数据设置:核心数据过滤抽象的实体
Issue
(IssueField)IssueFields (to many, Abstracted)
IssueField
(String)type
TextField : IssueField
(String)text
DateField : IssueField
(Date)date
所以实体问题有一个与IssueField IssueField抽象,并有两个孩子的TextField,的DateField
一对多的关系我想运行一个谓语找到问题包含任何的DateField具体日期
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Issue"];
request.predicate = [NSPredicate predicateWithFormat:@"any IssueFields.type = %@ and any IssueField.date = %@", @"DateType", today];
,但我得到这个错误: 原因:“的keyPath IssueFie ld.date没有在实体中找到'
我明白这是由于查询尝试在TextField上查找日期,但我该如何解决此问题?
您的'IssueField'实体没有'date'属性,因为它是从'IssueField'继承的'DateField'而不是其他方式。目前还不清楚你想要达到什么目标,所以我不能真正评论解决问题的方法。为什么你需要一个单独的'TextField'和'DateField'实体? (而不是将它们作为'IssueField'属性? – Rog
有一个独立的组件,用于配置项目的问题可以有多少个字段,此结构允许在将来扩展问题字段以适应新的数据类型。 IssueField的列表,IssueField可以是文本字段或日期字段,也可以是值列表字段,文档字段,数字字段等。 –
嗯,为什么不只是拥有'Issue'类型的'IssueField'实体和属性'值',类型将存储字段类型,和值将存储字段值,也可以帮助https://developer.apple.com/library/mac/documentation/cocoa/conceptual/coredata/articles/cdNSAttributes。 HTML – Rog