Существует ли Swift эквивалент Objective-C @encode?
Например
@encode(void *) // -> @"^v"
Поиск ничего не дал.
Ответ 1
Нет, нет - потому что под капотом классы Swift не используют конструкцию Objective-C для выполнения своей работы. Нет необходимости вычислять это (например, в Objective-C) для передачи/вызова данных.
Однако, если вам нужно динамически использовать его во время выполнения (например, для взаимодействия с существующими методами Objective-C), вы можете либо создать вызов Objective-C и передать объект через или (для простых типов) написать поиск таблица.
Но в принципе, если у вас есть тип, который вы хотите передать, и найти его объективный тип кодирования c, вы можете использовать метод objCType NSObject:
var i = 1 as NSNumber
String.fromCString(i.objCType)! == "q"
Если вам все равно нужно передать его как ненамеренную строку C, вам может даже не понадобиться преобразовать его в строковый тип Swift.