我遇到了CoreData(使用MagicalRecord)尝试更改属性的问题。我认为这是对象与两个父实体有关系的结果。
该对象是手册,它与汽车和库具有多对多关系。 库包含所有手动对象。 汽车有1-3个手动项目。
每个手册都有一个UID,汽车和库之间共享相同的对象。
出于某种原因,一旦将对象设置为两者的关系,我就无法更改手册的标题(NSString)属性。
我检查过以确保我处于相同的环境中。不确定是什么问题。
这就是我记录的内容:
NSLog(@"Manual Title: %@",manual.title);
//prints Old Manual
manual.title = @"New Manual"
NSLog(@"Manual Title: %@",manual.title);
//prints New Manual
我将这个保存在MagicalRecord saveUsingCurrentThreadContextWithBlockAndWait
中的其他不相关的NSManagedObjects正在保存。
当应用将数据加载到用户界面时,它仍会显示"旧手册"
有什么建议吗?
感谢您的时间。
答案 0 :(得分:0)
事实证明,我使用的MagicalRecord方法的问题是双重的:
1)我应该使用saveUsingCurrentThreadContextWithBlockAndWait
saveWithBlockAndWait
2)当我拿取手动对象时,我没有传递上下文,因此我将MR_findFirstWithPredicate
更改为MR_findFirstWithPredicate:inContext
希望这会为别人节省一些时间