So hatte ich eine Funktion wie folgt aus:Compiler-Fehler in schnellen indexOf get()
var localIndices: [ChartHighlight] = []
for globalHighlight in globalIndices
{
if let globalSet = data?.dataSets[globalHighlight.dataSetIndex]
{
if globalSet.dynamicType === dataSetType
{
let chartData = getChartData(dataSetType)
if (chartData == nil)
{
return globalIndices
}
let localdataSetIndex = chartData!.dataSets.indexOf(globalSet)
if (localdataSetIndex != nil)
{
localIndices.append(ChartHighlight(xIndex: globalHighlight.xIndex, dataSetIndex: localdataSetIndex!, stackIndex: globalHighlight.stackIndex))
}
}
else
{
return globalIndices
}
}
}
Der Compiler bei
klagtlet localdataSetIndex = chartData!.dataSets.indexOf(globalSet)
sagen, dass
nicht Wert umwandeln kann vom Typ 'IChartDataSet' zum erwarteten Argumenttyp '@noescape (IChartDataSet) throws -> Bool'
Ich bin verwirrt, warum ich nicht normal indexOf()
für [IChartDataSet]
verwenden kann. Bezieht sich dies darauf, dass chartData!.dataSets
[IChartDataset]
ist, während IChartDataset
ein Typ ist? ich nicht swift doc sehen dies zu erwähnen oder ich es verpasst ...
Ist Ihr 'IChartDataSet' entspricht' Equatable'? Wahrscheinlich nicht, deshalb können Sie das übliche 'indexOf' nicht verwenden. –
@AlexanderDoloz Ich habe überprüft, dass es nicht konform ist. Vielen Dank! – Wingzero