说实话,我不知道应该怎么做,但是在Xcode 9中它可以正常工作,在10上我遇到了这些错误
open var x: Double { return _x }
open var y: Double { return _y }
open var xPx: CGFloat { return _xPx }
open var yPx: CGFloat { return _yPx }
open var dataSetIndex: Int { return _dataSetIndex }
open var stackIndex: Int { return _stackIndex }
open var axis: YAxis.AxisDependency { return _axis }
open var isStacked: Bool { return _stackIndex >= 0 }
设置上次绘制该高光的位置的x和y位置(像素)。
open func setDraw(x: CGFloat, y: CGFloat) {
self.drawX = x
self.drawY = y
}
设置上次绘制该高光的位置的x和y位置(像素)。
open func setDraw(pt: CGPoint) {
self.drawX = pt.x
self.drawY = pt.y
}
open override var description: String
{
return "Highlight, x: \(_x), y: \(_y), dataIndex (combined charts): \(dataIndex), dataSetIndex: \(_dataSetIndex), stackIndex (only stacked barentry): \(_stackIndex)"
}
open override func isEqual(_ object: Any?) -> Bool
{
if object == nil
{
return false
}
if !(object! as AnyObject).isKind(of: type(of: self))
{
return false
}
if (object! as AnyObject).x != _x
{
return false
}
if (object! as AnyObject).y != _y
{
return false
}
if (object! as AnyObject).dataIndex != dataIndex line1
{
return false
}
if (object! as AnyObject).datasetIndex != _dataSetIndex line2
{
return false
}
if (object! as AnyObject).stackIndex != _stackIndex line3
{
return false
}
return true
}
错误在第1行中:类型为“ AnyObject”的值没有成员“ dataIndex” 第2行:“ AnyObject”类型的值没有成员“ dataIndex” line3:类型为“ AnyObject”的值没有成员“ stackIndex”;您是说'tagAtIndex'吗? 搜索但没有找到有用的
答案 0 :(得分:0)
isEqual
方法主体非常漂亮 objective-c-ish 。
如果您确实需要isEqual
,请使用 swiftier 语法
open override func isEqual(_ object: Any?) -> Bool {
guard let obj = object as? Self else { return false }
return obj.x == x && obj.y == y && obj.dataIndex == dataIndex && obj.dataSetIndex == dataSetIndex && obj.stackIndex == stackIndex
}
旁注:
根本不要在Swift中使用下划线字符开头的私有支持属性。这也是一个不好的 objective-c-ish 传统习惯。如果需要常量,请声明常量。