Я хочу получить класс возвращаемого значения экземпляра во время выполнения. Дело в том, что у меня есть тип SEL
, где я храню селектор. У меня есть переменная с именем id _instance
, которая указывает на экземпляр, который, как я знаю, выполняет селектор. Перед тем как выполнить метод, который я хочу знать, если я должен сделать:получение возвращаемого значения типа метода экземпляра во время выполнения
NSObject* returnValue=[_instance performSelector:_selector withObject:params.params];
или:
[_instance performSelector:_selector withObject:params.params];
Я прочитал post where someone explain the way to have that with objective-c runtime:
Method m = class_getClassMethod([_instance class], _selector);
char ret[256];
method_getReturnType(m, ret, 256);
NSLog(@"Return type: %s", ret);
Но выходы не что иное, как RET пусто.
Действительно, этого может быть достаточно, чтобы узнать, является ли это пустотой или имеет тип возврата, но я не знаю, где искать. Я прочитал objective-c runtime reference, но единственное, что я нашел, это method_getReturnType...
. Есть идеи?
Вы действительно не хотите использовать этот вид интроспекции для чего, кроме образовательные эксперименты. Вниз этот путь - безумие и многие кошмары для обслуживания. – bbum
Спасибо за объявление! Если у вас есть лучшее предложение о том, как это сделать, я открыт для него;) – Jpellat
Что вы пытаетесь сделать? То есть Зачем тебе это нужно знать? Вероятно, стоит новый вопрос. – bbum