我如何在这个代码段中指定子类?它没有返回任何东西,所以编译器没有任何东西来推断类型。我也不能在没有编译器错误的情况下调用root.addSublayers([“a”,“b”])。
可能功能:
func addSublayers(names: [String]? = nil, ofSubType type:???)
func addSublayers<type: CALayer>(names: [String]? = nil)
身体:
{
for name in (names ?? defaultNames)
{
let layer = type() //init a custom subclass of CALayer
layer.name = name
self.addSubLayer(layer)
}
}
2条答案
按热度按时间qhhrdooz1#
请尝试以下操作:
或此
uqdfh47h2#
如果有人遇到这个问题,这里是我目前使用的模式。
此模式也用于标准库中。