Передать класс в качестве параметра?

Это не так ужасно, ИМХО. единственный способ, которым я могу придумать, чтобы сделать его короче, это заменить a.shape[0] на len(a)

39
задан pkamb 3 June 2016 в 18:43
поделиться

3 ответа

 - (id) navControllerFromView: (Класс *) viewControllerClass

Это просто Класс , без звездочки. ( Class не является именем класса; вы не передаете указатель на экземпляр класса Class , вы передаете сам класс.)

 rootNavController = [self navControllerFromView: RootViewController

Вы не можете передавать простое имя класса вот так - вы должны отправить ему сообщение. Если вы действительно хотите куда-то передать класс, вам нужно отправить ему сообщение class . Таким образом:

rootNavController = [ self navControllerFromView:[RootViewController class]
        title:@"Contact"
        imageName:@"my_info.png"
];
46
ответ дан 27 November 2019 в 02:43
поделиться

Похоже, вы почти получили это. Вы хотите передать [класс RootViewController] вместо RootViewController . Это дает вам значение Class . Кроме того, я не думаю, что вы хотите, чтобы ваша функция принимала Class * , а просто Class . На самом деле это не объект Objective-C.

12
ответ дан 27 November 2019 в 02:43
поделиться

Вы не объяснили никаких проблем с опубликованным вами кодом. Что не работает? Чего вы ожидаете? Единственное, что я могу придумать на данный момент, это то, что вы можете передать [RootViewController class] вместо только RootViewController . Кроме того, ваше форматирование меня убивает.

1
ответ дан 27 November 2019 в 02:43
поделиться