我正在尝试更新自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。