我在主屏幕上有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