2016-05-29 3 views
-1

配列stockPriceDate1..4はコード全体で同じように使用されます。最後の2つのエントリでl-valueエラーを取得します。私が間違っているのは私のリストの句読点ですか?Swift - 式は未使用のl値に解決されます

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... 
} 

答えて

2

さんは異なり、あなたのコードを書き換えてみましょう:

return seriesIndex == 0 ? stockPriceData1[dataIndex] : stockPriceData2[dataIndex] 

let _ = stockPriceData3[dataIndex] 
let _ = stockPriceData4[dataIndex] 

注意戻り値がstockPriceData1stockPriceData2のいずれかであること。 stockPriceData3stockPriceData4に続く2つの添字は、その結果を使用していないため無視されます。

コードは間違いないと思います。

seriesIndexを使用して正しいデータ配列を取得する場合は、switchを使用します。

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] 
+0

をあなたは両方のカウントに正確である - 多くの感謝。 –

関連する問題