我試圖建立coredata在我已經啓動了一個項目。我去了而其他一些錯誤,但現在已經縮小到這一點,NSInternalInconsistencyException未能找到NSManagedObjectModel爲實體名稱
***終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,原因是:「+ entityForName:無法 定位NSManagedObjectModel的實體名稱「MANUF」
我想我已經縮小的問題和可能的解答此問題並回答here回覆:亞歷克斯的回答。
但是我不能完全肯定這是對我的情況下,作爲我困惑的原因是不是在我的應用程序,委託& viewcontrollers設置了一切我其實用我的應用程序,委託&一個對象類。所以我希望有人可以幫助我隔離和修復我的問題在這裏...
這是我的對象類中的代碼段給我的問題。它與xcode爲coredata應用程序生成的模板代碼幾乎相同,但它排除了排序和tableview的東西,因爲我不需要..我只是傾銷一堆NSData到我的coredata對象。
- (NSFetchedResultsController *)fetchedResultsController
{
if (__fetchedResultsController != nil) {
return __fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Manuf" inManagedObjectContext:self.managedObjectContext]; //this is the line where my code fails and generates the error in the log
[fetchRequest setEntity:entity];
// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Master"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
NSError *error = nil;
if (![self.fetchedResultsController performFetch:&error]) {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return __fetchedResultsController;
}
UPDATE:
這就是我想我錯了。在模板代碼控制器和上下文設置這樣
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
ICDMasterViewController *controller = (ICDMasterViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
return YES;
}
中的appdelegate內,因爲我在做我所有的東西在一個對象類,我不知道如何在我的應用程序委託初始化呢?
至於反對什麼,我想在我的appdelegate現在要做的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Add status bar
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
self.window.rootViewController = self.navigationController; //Adds RootViewController to the NavigationController interface
self.navigationController.navigationBar.tintColor = [UIColor grayColor];
[self.window makeKeyAndVisible];
//try setting up context for my nsobjectclass EngineResponses
EngineResponses *engineResponses = [[EngineResponses alloc] init];
engineResponses.managedObjectContext = self.managedObjectContext;
return YES;
}
1,是的,它是零。 2,是最挑剔的檢查了幾次,確保拼寫一個案件匹配。 3,我不確定..這是我認爲我會錯的地方..在模板xocde prog中,應用程序委託在didFinishLaunchingWithOptions中設置了控制器和上下文,我已經將它留在了atm ..因爲我不不知道如何爲對象而不是類初始化它...你有什麼想法嗎?我更新了我的問題以上我缺少的東西(這是我認爲導致此問題。)感謝回覆btw。 –
(1)是的,它是零 - 好吧,它不會!你得到這個異常的原因是因爲你沒有告訴它在哪個上下文中尋找'Manuf'!您需要在嘗試使用它之前創建您的託管對象上下文;) – deanWombourne
是的,這就是我現在要創建的..但我不知道如何創建它..從我可以告訴在由excode生成的模板代碼中它在appdelegate下在didFinishLanuchingWithOptions下聲明的權限? –