有人可以解决我对 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
}
此处 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
}