Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ';[Double?]和#x27;不可转换为';[双倍]';_Ios_Swift_Casting_Optional - Fatal编程技术网

Ios ';[Double?]和#x27;不可转换为';[双倍]';

Ios ';[Double?]和#x27;不可转换为';[双倍]';,ios,swift,casting,optional,Ios,Swift,Casting,Optional,也许这个问题太傻了,但我是iOS新手 如何将可选数据数组转换为非可选数据数组 [Double?]不能转换为[Double] 这是一条有错误的线 let massive = [dictionary[j]![one]?.doubleValue] as [Double] 我正在转换为[Double],因为我在这里使用它 let dataEntry = BarChartDataEntry(values: massive, xIndex: c) 它会抛出错误 无法使用 类型为“(值:[Doubl

也许这个问题太傻了,但我是iOS新手
如何将可选数据数组转换为非可选数据数组

[Double?]不能转换为[Double]

这是一条有错误的线

   let massive = [dictionary[j]![one]?.doubleValue] as [Double]
我正在转换为[Double],因为我在这里使用它

let dataEntry = BarChartDataEntry(values: massive, xIndex: c)
它会抛出错误

无法使用 类型为“(值:[Double?],xIndex:Int)”的参数列表

BarChartDataEntry类的构造函数是这样的

public init(values: [Double], xIndex: Int)

这取决于你的双人间价值多少。在这种情况下,必须确保它有一个小数点,而不是0.0。在这种情况下,您可以将代码作为

//your code
... = Double[...]

这应该解决。否则,请提供一些代码,以便我可以建议解决方法。希望这对您有用:)

[Double?]已包装,您必须将其展开才能将其用作[Double]。为了更好地理解,请看一下您的双打是用什么包装的:

enum Optional<T> {
    case None // has no value
    case Some(T) // has some value 
}

请在帖子中包含相关代码。对于
[Double?]
数组中为零的元素,您希望如何处理?放下它们?用NaN或零替换它们?@Arc676谢谢,editedI看到了,你正在使用ios图表,你可能需要重新评估你的数据源,这可以在没有选项的情况下完成。。。或者您可以始终在[Double?]上运行flatMap。请参阅我的答案以获取示例。请尝试字典[j]?[one]?。doubleValue??0没问题,您也应该评估@Leo Dabus在评论中提出的建议,他是一个非常有代表性的用户,他的建议通常都是正确的。但这本代码字典[j]?[one]?。doubleValue对我没有帮助,错误仍然会发生如果我的解决方案对您有效,请继续使用。我只是建议你看看利奥·达布斯的评论,看看它是否有效。祝你的图表好运或者更短:
let foo=dubs.flatMap{$0}
[dictionary[j]![one]是NSDecimalNumber的类型,我转换为double,因为我想调用的函数是[double]类型。谢谢你的尝试
var dubs : [Double?] = [1.2,1.4]

print(dubs) // [{Some 1.2}, {Some 1.4}]

var newDubs = dubs.flatMap { dub in
    return dub
}

print(newDubs) // [1.2, 1.4]