我已经开始尝试使用CoreData,并将其基础应用到自己的项目中。我已经基本上复制了一个新项目,但是我遇到了一个错误。
这行代码 controller.managedObjectContext = self.managedObjectContext;
导致了问题。当我注释它时,应用程序只会启动一个空的UITableView,但是如果我包含这行代码,就会导致以下错误:
Universal[24718:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewController setManagedObjectContext:]: unrecognized selector sent to instance 0x1521a0'
*** First throw call stack:
(0x344558bf 0x346a51e5 0x34458acb 0x34457945 0x343b2680 0x2413 0x378367eb 0x378303bd 0x377fe921 0x377fe3bf 0x377fdd2d 0x30c30df3 0x34429553 0x344294f5 0x34428343 0x343ab4dd 0x343ab3a5 0x3782f457 0x3782c743 0x2331 0x22c8)
terminate called throwing an exception
如果需要查看更多代码,我可以提供,希望你能理解发生的情况。我没有发现会导致这种情况的任何问题,也没有收到任何错误信息,但是当该行代码被执行时,整个应用程序就会崩溃,我不知道原因。
该行代码位于应用程序委托的didFinishLaunchingWithOptions方法中,就像在一个新的core data项目中一样。
按照要求,以下是表视图控制器的头文件:
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
@interface myTableViewController : UITableViewController <NSFetchedResultsControllerDelegate>
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@end
controller
类的头文件。 - Jim