MagicalRecord - 速记适用于某些实体,但不适用于其他实体

Posted

技术标签:

【中文标题】MagicalRecord - 速记适用于某些实体,但不适用于其他实体【英文标题】:MagicalRecord - shorthand works for some entities but not others 【发布时间】:2013-03-08 01:13:27 【问题描述】:

在我的前缀文件中我有这个:

#define MR_SHORTHAND
#import "CoreData+MagicalRecord.h"


//this causes an unrecognized selector sent to instance crash
Apple *apple = [Face findFirstByAttribute:@"appleId" withValue:value];

//this works fine
Apple *apple = [Face MR_findFirstByAttribute:@"appleId" withValue:value];

//however this also works fine:
Orange *orange = [Face findFirstByAttribute:@"orangeId" withValue:value];

为什么我可以对某些实体使用速记而不对其他实体使用速记?

【问题讨论】:

我遇到了完全相同的问题。不过才刚刚开始。很奇怪,你得到答案了吗? 【参考方案1】:

好的,我不知道这对你有没有帮助,但我刚刚解决了我遇到的问题。

我有一个名为“EventMessage”的实体,但我不喜欢这个名字,所以我将它重命名为“Message”。

这是我开始遇到问题的时候。

我只是从 AppCode 将应用程序运行到模拟器,我看到一条消息告诉我“消息已实现两次”。

我将实体(以及所有关联的类)重命名为“EventMessage”,现在可以正常工作了。

奇怪的是它以前编译过吗?!

不管怎样,试一试。例如,将您的 Face 实体重命名为您知道是唯一的“SoleilFace”,看看是否可以修复它。

【讨论】:

我刚遇到同样的问题 - 你找到答案了吗? 是的,将实体重命名为绝对唯一且非保留的名称。您的实体名称是什么?【参考方案2】:

以防万一有人在 2014 年和 2.2+ 版本偶然发现此搜索结果,您需要安装以使用速记的 Cocopod 是

pod 'MagicalRecord/Shorthand', '~> 2.2';

根据下面的帖子

https://github.com/magicalpanda/MagicalRecord/issues/668

【讨论】:

以上是关于MagicalRecord - 速记适用于某些实体,但不适用于其他实体的主要内容,如果未能解决你的问题,请参考以下文章

iOS MagicalRecord 启动时崩溃

MagicalRecord:如何将值导入相关实体

使用 MagicalRecord 使用当前实体创建新实体

删除 MagicalRecord 中的实体不持久

如何更改 MagicalRecord 中实体的主键?

MagicalRecord - ManyToMany:我需要在关系的两边添加实体吗?