ios - swift : Cannot convert value of type '()' to expected argument type '[Double]'

标签 ios arrays swift xcode data-transform

我正在 iOS 应用程序上使用图表。

它将从蓝牙获取数据并保存为Array = []

绘制图表时必须转换为[Double]

func setChart(values: [Double]) {
        // mChart.noDataText = "No data available!"
        for i in 0..<values.count {
            print("chart point : \(values[i])")
            let dataEntry = ChartDataEntry(x: Double(i), y: values[i])
            dataEntries.append(dataEntry)
        }

这些是绘制图表的代码。

for i in 1...transferedData.endIndex-1{
        setChart(values : transferedData[i]) // Cannot convert value of type 'String' to expected argument type '[Double]'
       setChart(values: transferedData.map{ Double($0)}) //Cannot convert value of type 'Double?' to closure result type 'Double'
    }

这些是我尝试从transferedData向setChart添加数据的代码。

我已经找到了互联网,但无法解决这个问题。

这个问题我该怎么办?

**************************** 已编辑******************** **********

我现在有两个 Swift 文件。

一个用于数据传输,另一个用于绘制图形。

这是为了保存和处理数据。 (SerialViewController.swift)

public var UserDis : Array<String> = []

func getRealDataProcess(){        
        splitUserData = receivedDataForReal.split(separator: ";") 
        for j in 0...splitUserData.endIndex-1 { 
            if splitUserData[j].count == 14{ 
                checkedUser14Data.append(String(splitUserData[j]))
            }
        }

        for k in 0...checkedUser14Data.endIndex-1{
            var strForCal = checkedUser14Data[k]
            var valDis = strForCal[strForCal.startIndex...strForCal.index(strForCal.startIndex, offsetBy: 4)] 
            UserDis.append(String(valDis))
        }

    }

这是用于绘制图表的。 (GraphViewController.swift)

for i in 0...transferedData.endIndex-1{
            let inputData = Double(transferedData[i])!
            setChart(values: [inputData])
        }

线程 1: fatal error :无法使用 upperBound 形成 Range < lowerBound 现在发生在 returnedData.endIndex-1

最佳答案

您尝试过下面的代码吗?我正在使用 if 语句将数据从可选转换。

var transferedData: [String] = ["12.2","24.3","23"]

for data in transferedData {
if let convertedData = Double(data){
   setChart(values : cobvertedData)
  }
}

我尝试使用你使用的 for 循环

for i in 1...transferedData.endIndex-1 

但它会遗漏一个数组,导致数据集不完整。

关于ios - swift : Cannot convert value of type '()' to expected argument type '[Double]' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57948085/

相关文章:

ios - 第 3 方密码自动填充扩展

ios - 无效的预发布训练。火车版本 '1.0' 已关闭,无法提交新版本

c++ - 如何在 C++ 中对一个数组进行排序并获得相应的第二个数组?

swift - 如何配置 WKWebView 来填充 NSWindow?

iphone - 如何管理在 UIView 中添加的 subview ?

java - 如何在运行时实例化给定数组类型的 Java 数组?

arrays - perl文件操作

sql - 500 操作无法完成。 (PostgreSQL.DatabaseError 错误 1。)

xcode - 如何将语言添加到 NSSpellChecker 的可用语言中?

ios - 如何使用自动布局使 View 居中