我在主屏幕上有4個按鈕,每個按鈕都將我發送給viewController。第三個,發送給我想要設置managedObjectContext的視圖。如果我使用類名來創建一個實例,那沒關係。但我正在尋找一種方法來使用一種方法,它使用一個數組來檢索所需viewController的Class的名稱。但它導致了一個錯誤消息,就像它不存在於目標viewController中一樣?任何人有關於這個問題的任何想法?提前致謝!如何將managedObjectContext分配給動態viewController?
下面是代碼:
NSArray *viewControllers = [[NSArray alloc]
initWithObjects:@"nil",@"OpcoesView",@"nil",@"TheNames", nil];
NSString *viewName = [viewControllers objectAtIndex:[sender tag]]; //the taped button tag
UIViewController *viewController = [[NSClassFromString(viewName) alloc]
initWithNibName:viewName bundle:nil];
if ([sender tag] == 3) {
viewController.managedObjectContext = contexto;
}
好點。我重新回答了我的答案。我可能會爭辯說,應儘可能使用特定的類來澄清和編譯器的幫助,但這只是我的看法。 – gerry3 2010-01-18 04:05:41
在Objective-C中投射通常是不必要的,而且當來自其他強類型語言時,這是一種很多形式的習慣。具有'id'的全部要點是能夠發送任何消息並允許在運行時發生分辨率。這是Objective-C的核心,允許綁定等工作。 瞭解並熟悉KVC/KVO是成爲Objective-C開發人員的必備條件。沒有這些知識,你只需編寫帶有有趣括號的[Java | C#]。 – 2010-01-18 17:27:23
感謝Gerry和Marcus,非常有幫助,並且清楚瞭解我的情況。這很棒,而且我學到的東西比我預想的要多得多。你們很棒,它讓我更加註重客觀的C,現在我把它稱爲激情!非常感謝! – 2010-01-19 15:00:42