MR_SHORTHAND不起作用

我使用MagicalRecords,但由于某种原因MR_SHORTHAND不适合我。

我已经将这些行添加到Prefix.pch

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

在应用程序调用+ createEntity方法的情况下,应用程序因无法识别的select器而终止。 但是,如果我写MR_createEntity一切工作正常。

 Team *team = [Team MR_createEntity]; // This line works 

 Team *team = [Team createEntity]; // This line does not work with reason: '+[Team createEntity]: unrecognized selector sent to class 0x74b8c' 

我知道在这个答案之前我们还没有公开宣布它,但是我们已经决定放弃速记支持,并在即将到来的MR3版本中删除它。

速记支持是一个有趣的想法和function,但它不是我们想要维护的东西。 我们宁愿把精力集中在让MagicalRecord的数据中心部分尽可能地坚固和可重用。

也就是说,你当然欢迎自己解决它,并提交补丁到MagicalRecord的旧分支。 有些事情要看:

  • 确保包含速记select器,如果不存在,请添加新的速记器
  • 确保您在此次调用之前使用了MagicalRecord类。 所有的简写支持都是在类初始化方法中初始化的。
  • 如果您使用的是Cocoapods,则可能需要将您的pod规范参考更新为“MagicalRecord / Shorthand”

根据官方指南https://github.com/magicalpanda/MagicalRecord/blob/master/Docs/Installing-MagicalRecord.md

你必须打电话

[MagicalRecord enableShorthandMethods];

上面的错误意味着核心数据堆栈尚未初始化。 你应该添加[MagicalRecord setupCoreDataStackWithStoreNamed:dbName];[self.window makeKeyAndVisible];之前的应用程序委托中[self.window makeKeyAndVisible];

因为如果你叫[Team createEntity]; 在你的VC根[self.window makeKeyAndVisible]; 使视图被加载和可见,但应用程序还没有到达设置核心数据栈的下一行