0
我有签名的方法:传递一个类型变量作为参数斯威夫特
func relatedObject<T: SomeType>(for type: T.Type) -> SomeRelatedObject
我有一个SomeType.Type
变量,我想以某种方式调用的方法,如:
let typeVariable: SomeType.Type = ...
let result = relatedObject(for: typeVariable)
但我得到一个错误:
Cannot invoke 'relatedObject' with an argument list of type '(for: SomeType.Type)'
是否有可能以某种方式实际调用该方法具有类型VA可变结构?
是'SomeType'协议? (如果它是一个具体的类型,你的代码应该工作)。比较[为什么我无法将Protocol.Type传递给通用T.Type参数?](https://stackoverflow.com/q/45234233/2976878) – Hamish
确实如此,它是一个协议。谢谢!不知道有什么区别。 –