У меня есть 4 кнопки на главном экране, каждый отправляет меня в viewController. Третий, отправляет меня на представление, на котором я хочу установить managedObjectContext. Если я использую имя класса для создания экземпляра, все в порядке. Но я ищу способ использовать только один метод, который использует массив для получения имени класса для необходимого viewController. Но это приводит к сообщению об ошибке, как будто этого не существует на целевом viewController ??? У кого-нибудь есть идеи об этом aproach ??? Заранее спасибо!Как назначить 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
Кастинг, как правило, не нужен в Objective-C, и это привычка многих форм при переходе с других строго типизированных языков. Весь смысл иметь «id» - это возможность отправить ему какое-либо сообщение и разрешить разрешение во время выполнения. Это находится в центре Objective-C и что позволяет связывать и т. Д. Работать. Знакомство и удобство с KVC/KVO - это требование стать разработчиком Objective-C. Без этих знаний вы просто пишете [Java | C#] со смешными скобками. –
Спасибо, Джерри и Маркус, очень помогли и очистили мое мнение о моем случае. Это было здорово, и я узнал гораздо больше, чем когда-либо ожидал. Вы, ребята, были великолепны, и это подтолкнуло меня больше к объективному C, и я называю это сейчас страстью! Большое спасибо! –