魔法记录不适用于旧项目

时间:2018-05-30 09:59:04

标签: ios objective-c xcode magicalrecord

我正在尝试更新自2012年以来更新的旧项目.Obj-C和Core Data不是我的核心竞争力,所以我希望使用Magical Record。我已经通过CocoaPods安装了它,并且我可以告诉它已经安装好了。

问题:我按照文档设置了它,但是不能使用MR_findAll返回一个实体,但我可以返回所有托管对象的列表,所以它似乎正在起作用。

我已经注释掉了所有较旧的原生CoreData系列。

我的模型名为“PetStore.xcdatamodeld”,与我的应用程序不同。

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];


  [MagicalRecord setLoggingLevel:MagicalRecordLoggingLevelDebug];
  [MagicalRecord setupCoreDataStackWithStoreNamed:@"PetStore"];

然后在我的视图控制器中,它工作并返回一个managedObjects列表:

NSArray *allEntities = [[NSManagedObjectModel
MR_defaultManagedObjectModel] entities];
for (NSManagedObject *mo in allEntities) {
   NSLog(@"mo %@", mo);
 }

但我不能使用MR方法来获取实体。这不起作用:

NSArray *pets = [Pet MR_findAll];
NSLog(@"pet %@", pets.count);

那只是记录:

 pet (null)

但我可以看到我有一个托管对象和具有该名称的实体:

[2430:365392] mo (<NSEntityDescription: 0x604000148da0>) name Pet, managedObjectClassName Pet, renamingIdentifier Pet

我错过了什么?我绕圈子走了。我查看了示例项目,它们工作得很好。

帮助!

TIA。

0 个答案:

没有答案