Ios ';[Double?]和#x27;不可转换为';[双倍]';
也许这个问题太傻了,但我是iOS新手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
如何将可选数据数组转换为非可选数据数组 [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]