Iphone '+;entityForName:nil不是合法的NSManagedObjectContext
当我试图将数据从核心数据加载到表视图控制器时出错。我相信这是由于managedObject没有被正确地传递 但我相信我是在研究了AppDelegate.m中didFinishLaunchingWithOptions下的代码之后这样做的 错误 ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+entityForName:nil不是搜索实体名称“Club”的合法NSManagedObjectContext参数” MLVAPPDelegate.hIphone '+;entityForName:nil不是合法的NSManagedObjectContext,iphone,ios,cocoa-touch,core-data,Iphone,Ios,Cocoa Touch,Core Data,当我试图将数据从核心数据加载到表视图控制器时出错。我相信这是由于managedObject没有被正确地传递 但我相信我是在研究了AppDelegate.m中didFinishLaunchingWithOptions下的代码之后这样做的 错误 ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+entityForName:nil不是搜索实体名称“Club”的合法NSManagedObjectContext参数” MLVAPPDelegate.h
#import <UIKit/UIKit.h>
@interface MLVAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@end
#import <UIKit/UIKit.h>
@interface MLVClubSelectionViewController : UITableViewController
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
@end
MLVClubSelectionViewController.h
#import <UIKit/UIKit.h>
@interface MLVAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@end
#import <UIKit/UIKit.h>
@interface MLVClubSelectionViewController : UITableViewController
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
@end
您已经实现了方法
masterManagedObjectContext
,但从未调用过它。而是将managedObjectContext
属性的值(与所有对象属性一样,将初始化为nil
)指定为传递给控制器的上下文
您可以执行以下操作之一:
masterManagedObjectContext
重命名为managedObjectContext
,这将提供managedObjectContext
访问器的延迟加载实现(意味着self.managedObjectContext
的计算值不再为nil
)managedObjectContext
:
- (NSManagedObjectContext *)managedObjectContext {
return [self masterManagedObjectContext];
}
managedObjectContext
属性,并仅使用masterManagedObjectContext
方法。这还需要显式定义\u managedObjectContext
实例变量managedObjectController
如何设置你的应用程序代理?在MLVClubSelectionViewController
上设置managedObjectController
之前,必须先执行此操作。也,子类UINavigationController
很少见——您可能不需要这样做就可以构建您的应用程序。我在研究另一个SO问题时创建了子类,他们建议将其用于选项卡控制器。我已使用设置managedObjectController的完整AppDelegate对其进行了更新。您已经实现了masterManagedObjectContext
但不要从任何地方调用它。我想这是我忽略的部分。我认为我所拥有的足以让它显示在表视图中。我应该添加什么?因此我执行了第一步,在应用程序委托中将masterManagedObjectContext重命名为managedObjectContext,错误现在消失了。但是表视图控制器仍然是空的。您在调试它时发现了什么?另外,您是否仍在numberOfSectionsInTableView:
中返回0
?这将确保一个空白的表视图:)另外-我创建了一个聊天频道,欢迎加入我会尽力帮助你