无法将 CGFloat 类型的值分配给 CGFloat 类型的值
Cannot assign a value of type CGFloat to a value of type CGFloat
我在尝试设置 CAShapeLayer
的 zPosition 时遇到错误。这是代码:
self.view.layer.sublayers[l].zPosition = CGFloat(1)
出于某种原因,我收到此错误:Cannot assign a value of type CGFloat to a value of type CGFloat!
。出于某种原因,错误是可选的。我在网上看到其他示例没有任何转换 (zPosition = 1
),所以我不知道这里的问题是什么。
谢谢!
sublayers 定义为 AnyObject 的可选数组。因此,您必须展开子层。以下应该有效:
self.view.sublayers![l].zPosition = CGFloat(1)
CALayer
的 sublayers
属性 定义为 [AnyObject]!
。当您下标为 ...sublayers[l]
时,您会得到一个 AnyObject
,可以肯定的是,它没有 zPosition
的可设置 属性。您需要将返回的 AnyObject
向下转换为 CALayer
,例如
if let layer = self.view.layer.sublayers[l] as? CALayer {
layer.zPosition = CGFloat(1)
}
此外,您不需要解包 sublayers
(在下标之前),因为它是用 !
声明的,因此会隐式地自动解包。
最后,您引用的错误消息似乎是错误复制的,因为它毫无意义。
我在尝试设置 CAShapeLayer
的 zPosition 时遇到错误。这是代码:
self.view.layer.sublayers[l].zPosition = CGFloat(1)
出于某种原因,我收到此错误:Cannot assign a value of type CGFloat to a value of type CGFloat!
。出于某种原因,错误是可选的。我在网上看到其他示例没有任何转换 (zPosition = 1
),所以我不知道这里的问题是什么。
谢谢!
sublayers 定义为 AnyObject 的可选数组。因此,您必须展开子层。以下应该有效:
self.view.sublayers![l].zPosition = CGFloat(1)
CALayer
的 sublayers
属性 定义为 [AnyObject]!
。当您下标为 ...sublayers[l]
时,您会得到一个 AnyObject
,可以肯定的是,它没有 zPosition
的可设置 属性。您需要将返回的 AnyObject
向下转换为 CALayer
,例如
if let layer = self.view.layer.sublayers[l] as? CALayer {
layer.zPosition = CGFloat(1)
}
此外,您不需要解包 sublayers
(在下标之前),因为它是用 !
声明的,因此会隐式地自动解包。
最后,您引用的错误消息似乎是错误复制的,因为它毫无意义。