有人可以解决我对 corePlot 中的 CPTPlotDatasource 的查询吗

Can someone solve my query regarding CPTPlotDatasource in corePlot

此处 CPTScatterPlotFiledX 显示错误为:

Binary Operator cannot be applied to operand of Type _CPTScatterPlotFiledX and UInt!

CPTScatterPlotFiledY 也一样

func numberForPlot(plot: CPTPlot!, field fieldEnum: UInt, recordIndex idx: UInt) -> NSNumber! {
    switch fieldEnum
    {
    case CPTScatterPlotFieldX :
        if plot.identifier .isEqual("aapl")
        {
            var num: NSNumber = aaplArray.objectAtIndex(Int(idx)).valueForKey("x") as! NSNumber
            return num
            break
        }
        else if plot.identifier .isEqual("goog")
        {
            var num: NSNumber = googArray.objectAtIndex(Int(idx)).valueForKey("x") as! NSNumber
            return num
            break
        }
    case CPTScatterPlotFieldY :
        if plot.identifier .isEqual("aapl")
        {
            var num: NSNumber = aaplArray.objectAtIndex(Int(idx)).valueForKey("y") as! NSNumber
            return num
            break
        }
        else if plot.identifier .isEqual("goog")
        {
            var num: NSNumber = googArray.objectAtIndex(Int(idx)).valueForKey("y") as! NSNumber
            return num
            break
        }
    }
    return NSNumber(float: 0)
}

case CPTScatterPlotFieldX 替换为 case UInt(CPTScatterPlotField.X.rawValue) 以便将 enum 类型转换为原始 UInt

您还可以将字段参数转换为 CPTScatterPlotField。 Core Plot 示例是这样做的:

switch CPTScatterPlotField(rawValue: Int(field))! {
case .X:
    return (oneDay * Double(recordIndex)) as NSNumber

case .Y:
    return self.plotData[Int(recordIndex)] as NSNumber
}