我使用MagicalRecord导入了一个具有以下JSON结构的对象:
{
"receipts": [
{
"date": "2014/03/05",
"amount": "199.00"
},
{
"date": "2014/03/04",
"amount": "9.00"
},
{
"date": "2014/03/01",
"amount": "9.00"
}
]
}在CoreData中,我创建了一个具有两个值(日期和金额)的Receipt对象。业务需求声明日期始终是唯一的。因此,我想用它来表示“relatedByAttribute”来表示NSManagedObject。但是,当我这样做时,MagicalRecord会检查这个错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x178034500'在CoreData的Reciept对象中,date属性设置为"relatedByAttribute“。在date属性本身上,我还在用户信息中设置了"dateFormat: yyyy/MM/dd“。我还有一个对象,它与这个收据有关系,关系设置为"relatedByAttribute : date“。
在Sum中:是否有一种方法可以使用“NSDate”将一个relatedByAttribute设置为主键?
对于所有感兴趣的人,这个问题的更多细节正在讨论通过MagicalRecord的问题跟踪器这里。
发布于 2014-05-09 17:51:08
为了解决这个问题,我在Reciept对象上添加了一个标识符属性。我将其设置为字符串,并将mappedKeyName设置为日期。然后,我将现有的date属性保持为原样(即dateFormat到yyyy/MM/dd)。然后,我将relatedByAttribute更改为标识符。它就像一种魅力!
大的“啊哈!”对我来说,当我意识到MagicalRecord允许您将多个属性映射到同一个JSON属性时。现在,我的date属性是一个NSDate,就像一个,而且我还有一个唯一的字符串标识符。
https://stackoverflow.com/questions/23207544
复制相似问题