我想通过写访问swift 4.1中的视图子层:
for layer : CALayer in myView.layer.sublayers {
// Code
}
但出现错误:
输入“ [CALayer]?”不符合协议“序列”
这是否意味着for循环无法访问CALayer
?
答案 0 :(得分:9)
sublayers
属性是一个可选数组(默认情况下为nil
)。
您必须先解开包装,例如带有可选的绑定:
if let sublayers = myView.layer.sublayers {
for layer in sublayers {
// ...
}
}
或者使用可选链接和forEach
:
myView.layer.sublayers?.forEach { layer in
// ...
}