Это не так ужасно, ИМХО. единственный способ, которым я могу придумать, чтобы сделать его короче, это заменить a.shape[0]
на len(a)
- (id) navControllerFromView: (Класс *) viewControllerClass
Это просто Класс
, без звездочки. ( Class
не является именем класса; вы не передаете указатель на экземпляр класса Class
, вы передаете сам класс.)
rootNavController = [self navControllerFromView: RootViewController
Вы не можете передавать простое имя класса вот так - вы должны отправить ему сообщение. Если вы действительно хотите куда-то передать класс, вам нужно отправить ему сообщение class
. Таким образом:
rootNavController = [ self navControllerFromView:[RootViewController class]
title:@"Contact"
imageName:@"my_info.png"
];
Похоже, вы почти получили это. Вы хотите передать [класс RootViewController]
вместо RootViewController
. Это дает вам значение Class
. Кроме того, я не думаю, что вы хотите, чтобы ваша функция принимала Class *
, а просто Class
. На самом деле это не объект Objective-C.
Вы не объяснили никаких проблем с опубликованным вами кодом. Что не работает? Чего вы ожидаете? Единственное, что я могу придумать на данный момент, это то, что вы можете передать [RootViewController class]
вместо только RootViewController
. Кроме того, ваше форматирование меня убивает.