我收到兩個錯誤,當我試圖設置使用Swift從Yahoo Finance API獲取圖表點數。第一個錯誤說Swift錯誤 - '不能調用類型'SwiftStockChart.LabelForValueGetter'(又名'(CGFloat) - >字符串')與參數列表的值'(值:CGFloat)'
'不能調用類型的值 'SwiftStockChart.LabelForValueGetter'(又名'(CGFloat的) - >字符串')與參數列表 '(價值:CGFloat的)'
這是上線
let text = labelForValue(value: minValue! + (maxValue! - minValue!)/CGFloat(verticalGridStep!) * CGFloat((i + 1)))
然後,我也得到一個錯誤說
'不能調用類型的值 'SwiftStockChart.LabelForValueGetter'(又名'(INT) - >字符串')與參數列表 '(價值:智力)'
這是行
let text = labelForIndex(index: i)
完整的代碼是:
func setChartPoints(points: [ChartPoint]) {
if points.isEmpty { return }
dataPoints = points
computeBounds()
if maxValue!.isNaN { maxValue = 1.0 }
for i in 0 ..< verticalGridStep! {
let yVal = axisHeight! + margin! - CGFloat((i + 1)) * axisHeight!/CGFloat(verticalGridStep!)
let p = CGPoint(x: (valueLabelPosition! == .right ? axisWidth! : 0), y: yVal)
let text = labelForValue(value: minValue! + (maxValue! - minValue!)/CGFloat(verticalGridStep!) * CGFloat((i + 1)))
let rect = CGRect(x: margin!, y: p.y + 2, width: self.frame.size.width - margin! * 2 - 4.0, height: 14.0)
let width = text.boundingRect(with: rect.size,
options: NSStringDrawingOptions.usesLineFragmentOrigin,
attributes:[NSFontAttributeName : valueLabelFont!],
context: nil).size.width
let xPadding = 6
let xOffset = width + CGFloat(xPadding)
let label = UILabel(frame: CGRect(x: p.x - xOffset + 5.0, y: p.y, width: width + 2, height: 14))
label.text = text
label.font = valueLabelFont
label.textColor = valueLabelTextColor
label.textAlignment = .center
label.backgroundColor = valueLabelBackgroundColor!
self.addSubview(label)
axisLabels.append(label)
}
for i in 0 ..< horizontalGridStep! + 1 {
let text = labelForIndex(index: i)
let p = CGPoint(x: margin! + CGFloat(i) * (axisWidth!/CGFloat(horizontalGridStep!)) * 1.0, y: axisHeight! + margin!)
let rect = CGRect(x: margin!, y: p.y + 2, width: self.frame.size.width - margin! * 2 - 4.0, height: 14)
let width = text.boundingRect(with: rect.size,
options: NSStringDrawingOptions.usesLineFragmentOrigin,
attributes:[NSFontAttributeName : indexLabelFont!],
context: nil).size.width
let label = UILabel(frame: CGRect(x: p.x - 5.0, y: p.y + 5.0, width: width + 2, height: 14))
label.text = text
label.font = indexLabelFont!
label.textAlignment = .left
label.textColor = indexLabelTextColor!
label.backgroundColor = indexLabelBackgroundColor!
self.addSubview(label)
axisLabels.append(label)
}
這已經修復了第一個錯誤,但不是第二個?你有什麼建議有關let文本= labelForIndex(索引:1)? –
這是同樣的問題,只是不同的功能類型。 ,還可以有更多的,你也許可以比較(DIFF/FileMerge)您使用對一個以上的聯繫,因爲我猜你的文檔SwiftStockKit的來源是(預斯威夫特3)網絡版。 – CRD