数组 stockPriceDate1..4 在整个代码中使用相同。获取最后两个条目的左值错误。是我的列表标点符号错了吗?
func sChart(chart: ShinobiChart!, dataPointAtIndex dataIndex: Int, forSeriesAtIndex seriesIndex: Int) -> SChartData! {
return seriesIndex == 0 ?
stockPriceData1[dataIndex]:
stockPriceData2[dataIndex];
stockPriceData3[dataIndex]; <- Expression resolves error...
stockPriceData4[dataIndex] <- Expression resolves error...
}
最佳答案
让我们以不同的方式重写您的代码:
return seriesIndex == 0 ? stockPriceData1[dataIndex] : stockPriceData2[dataIndex]
let _ = stockPriceData3[dataIndex]
let _ = stockPriceData4[dataIndex]
请注意,返回值是 stockPriceData1
或 stockPriceData2
。 stockPriceData3
和 stockPriceData4
的下两个下标将被忽略,因为您没有使用它们的结果。
代码绝对不是你想的那样。
如果您想使用seriesIndex
来获取正确的数据数组,您需要使用开关
,例如
switch seriesIndex {
case 0:
return stockPriceData1[dataIndex]
case 1:
return stockPriceData2[dataIndex]
case 2:
return stockPriceData3[dataIndex]
case 3:
return stockPriceData4[dataIndex]
default:
return nil // should never happen
}
或者使用数组:
let data = [stockPriceData1, stockPriceData2, stockPriceData3, stockPriceData4]
return data[seriesIndex][dataIndex]
关于arrays - Swift - 表达式解析为未使用的左值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37507625/