2012-05-24 48 views
0

我是在iPhone上開發的新手,我遇到與我的項目相當多的問題。將核心數據捆綁到tableviewcontroller(他自己在一個導航控制器(他自己在一個tabbarcontroller))

該項目基於空應用程序:一個tabbar應用程序(item1,item2)。 item1是一個簡單的視圖控制器(ProfilViewController),並且是navigationcontroller的一部分。 item1中的按鈕會推送tableviewcontroller(MainMantraViewController)。

另外,我的CoreData有一個實體:Mantra,由3個屬性組成:短語,主題,元素。我嘗試在啓動時填充它來測試coredata和tableviewcontroller之間的包。

這裏是我的appdelegate.m,下didfinishlaunching:

ProfilViewController *rootView =(ProfilViewController *)self.window.rootViewController; 
rootView.managedObjectContext=self.managedObjectContext; 

//donnée test 
Mantra * newMantra=(Mantra *)[NSEntityDescription insertNewObjectForEntityForName:@"Mantra" inManagedObjectContext:self.managedObjectContext]; 
newMantra.phrase [email protected]"ca pu du cul"; 
newMantra.theme = @"rire"; 

捉迷藏的應用程序,我得到以下*

  • (編輯)

*

**2012-05-24 16:26:09.690 Proto v0[1843:fb03] -[UITabBarController setManagedObjectContext:]: unrecognized selector sent to instance 0x6a4a690 
2012-05-24 16:26:09.693 Proto v0[1843:fb03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITabBarController setManagedObjectContext:]: unrecognized selector sent to instance 0x6a4a690'** 

在這一點上,我完全陷入困境,我無法找到任何確鑿的線索。 我感謝你的幫助,並會提供任何有幫助的snipets。

乾杯

+1

錯誤是說程序中的某些東西試圖訪問對象的'topViewController'屬性。該對象是一個「UITabBarController」,但該屬性僅存在於「UINavigationController」中。你在哪裏引用'topViewController'? –

+0

這是一個我在tuto中找到的方法,但它似乎必須實現,雖然我認爲它是類的一部分。 – louisD

+0

新的錯誤發生是因爲你告訴編譯器將'rootView'視爲'ProfilViewController',但它不是一個;根據錯誤信息,它是一個'UITabBarController'。每當你使用一個強制轉換,比如(ProfilViewController *),你需要100%確定你是對的。 –

回答

1

嗯,錯誤日誌是足夠清晰的,你在呼喚「topViewController」某處的UITabBarController,但的UITabBarController沒有一個叫「topViewController」屬性。我想你想使用'selectedViewController'。

+0

好的,我改成了另一種方法,它與其他架構一起工作,但精神是一樣的:定義rootview並設置它的上下文: ProfilViewController * rootView =(ProfilViewController *)self.window.rootViewController; rootView.managedObjectContext = self.managedObjectContext; – louisD

+0

哎呀,這實際上並不是我收到的最新錯誤消息。 我已經更新了與我的帖子中的代碼相對應的一個。 – louisD

+0

但它是同一種錯誤,它告訴你,你正試圖拋出一個不屬於UITabBarController的方法;)我假設你在ProfilViewController.h文件中有managedObjectContext屬性?所以只需使用_profileViewController.managedObjectContext = self.managedObjectContext。 –

相關問題