无法使用 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.