Я понимаю, что отражение не полностью поддерживается (пока) в Swift, но методы времени отражения (по-видимому) поддерживаются. Я пытаюсь получить возвращаемый тип функции во время выполнения. Вот мой примерПолучение возвращаемого типа функции в Swift
let s:Selector = "willAnimateRotation"
var m:Method = class_getInstanceMethod(object_getClass(self), s)
let returnType = method_copyReturnType(m)
println("method: \(m); returnType: \(returnType)")
free(returnType)
Вот пример моего метода willAnimateRotation, в настоящее время возвращения строки:
private func willAnimateRotation() -> String {
return "abc"
}
Выход из этого не кажется, меняются в зависимости от типа возвращаемого селектора. Например, при использовании типа String или Void для селектора я получаю следующий вывод:
метод: 0x0000000000000000; returnType: 0x0000000000000000
Мысли?
ТАКЖЕ: Я действительно не пытаюсь это сделать в Свифт. Я соединяю класс Objective-C с Swift, и получаю там те же результаты, когда код Objective-C пытается определить тип возврата селектора Swift. То есть, моей конечной целью в этом случае является использование Objective-C для получения типа возврата селектора Swift.
@ banana-- Я понимаю это. Это не мой вопрос. Мой вопрос заключается в использовании рефлексии, как вы, во время выполнения, определяете тип возврата. –