Я пытаюсь динамически сопоставлять протокол Swift с реализацией, но я заблокирован при попытке выполнить сравнение протоколов во время выполнения - кажется, что, возможно, протоколы действительно не существуют в во время выполнения?Сравнение времени выполнения MetaTypes Swift Protocol
Некоторые примеры вещей, которые я пробовал:
var protocols[Any]
func findProtocol(aProtocol: Any) -> Bool {
// Nope, protocols don't implement equatable
aProtocol == protocols[0]
// Doesn't work, unsafeAddressOf() only applies to AnyObjects
let pointer: UnsafePointer = unsafeAddressOf(aProtocol)
}
Я думаю, что я мог бы ударить границы пытаются победить систему типа ... какие-нибудь мысли?
Может вы приводите пример того, как вы на самом деле заполняете этот массив протоколов? –
Будет ли это 'ProtocolName.self'? –
У вас есть экземпляры типов, которые соответствуют протоколу или самим типам ('SomeProtocol.self') в вашем массиве? – Qbyte