无法使用 Swift 将此 CGFloat 分配给 XCode 中的 属性
Cannot assign this CGFloat to a property in XCode using Swift
我试图将 NSSplitView 的分隔线的粗细设置为指定的 CGFloat 值,但出现错误:"Cannot assign to the result of this expression error in Swift"。
我这样做好像是对的,你觉得哪里不对?
splitView.dividerThickness
是一个 CGFloat 值,如图 2 所示。
错误似乎很清楚,可以修复它:dividerThickness
需要 Float
而不是 CGFloat
。
要修复它,您可以:
- 像这样声明你的价值:
var val : Float = 0.0
- 将您的值保留为 CGFloat,然后使用 Float() 初始化程序:
spitView.dividerThickness = Float(val)
那是因为 CGFloat
在 32 位和 64 位机器上的大小不同。
不幸的是,转换不是自动完成的。但是您也许能够找到(或自己编写)运算符重载。
属性 只读:
var dividerThickness: CGFloat { get }
因此您无法分配新值。文档指出:
You can subclass NSSplitView
and override this method to change the thickness of a split view’s dividers.
我试图将 NSSplitView 的分隔线的粗细设置为指定的 CGFloat 值,但出现错误:"Cannot assign to the result of this expression error in Swift"。
我这样做好像是对的,你觉得哪里不对?
splitView.dividerThickness
是一个 CGFloat 值,如图 2 所示。
错误似乎很清楚,可以修复它:dividerThickness
需要 Float
而不是 CGFloat
。
要修复它,您可以:
- 像这样声明你的价值:
var val : Float = 0.0
- 将您的值保留为 CGFloat,然后使用 Float() 初始化程序:
spitView.dividerThickness = Float(val)
那是因为 CGFloat
在 32 位和 64 位机器上的大小不同。
不幸的是,转换不是自动完成的。但是您也许能够找到(或自己编写)运算符重载。
属性 只读:
var dividerThickness: CGFloat { get }
因此您无法分配新值。文档指出:
You can subclass
NSSplitView
and override this method to change the thickness of a split view’s dividers.