的NumberFormatter参数标签“(_ :)”不匹配任何可用的重载
问题描述:
沿着这条的NumberFormatter参数标签“(_ :)”不匹配任何可用的重载
lable2xValue.text = numberFormatter.string(from: value)
首先,它是引发此错误
无法将类型的价值“双师型”预期参数类型 '的NSNumber'
然后Xcode的建议value
与NSNumber
lable2xValue.text = numberFormatter.string(from: NSNumber(value))
当我这样做,那么这个错误显示
参数标签 '(_ :)' 不匹配任何可用的重载
这里是我完整的代码
//computed property
var value2x : Double? {
if let value = value1x{
return (value * 2)
}
else{
return nil
}
}
//objerver
var value1x : Double? {
didSet{
updateLabel2xValue()
}
}
func updateLabel2xValue(){
if let value = value2x {
//lable2xValue.text = "\(value)"
//MARK:- ERORR Cannot convert value of type 'Double' to expected argument type 'NSNumber'
//lable2xValue.text = numberFormatter.string(from: value)
//MARK:- ERROR Argument labels '(_:)' do not match any available overloads
lable2xValue.text = numberFormatter.string(from: NSNumber(value))
}
else {
lable2xValue.text = "???"
}
}
var numberFormatter : NumberFormatter = {
let ls = NumberFormatter()
ls.numberStyle = .decimal
ls.minimumFractionDigits = 0
ls.maximumFractionDigits = 2
return ls
}()
@IBAction func textField1xValueEditingChange(_ sender: AnyObject) {
//print(self.textField1xValue.text)
if let value = self.textField1xValue.text , let doubleValue = Double(value){
value1x = doubleValue
}else{
value1x = nil
}
}
注意:如果我尝试这种方式,那么它工作正常
lable2xValue.text = numberFormatter.string(from: 50.33)
答
编译器要
numberFormatter.string(from: NSNumber(value:value))
遗憾的是它并不表明。
快速提示:上NSNumber
⌘点击看到在申报文件中提供的初始化。
或者在在Xcode 8.1的最新版本的雨燕也可以投桥到Double
NSNumber
numberFormatter.string(from: value as NSNumber)
答
您需要添加的第一个参数标签value
与NSNumber
init
。
lable2xValue.text = numberFormatter.string(from: NSNumber(value: value))
+0
感谢您的回答 –
+0
@cristanlika欢迎伴侣:) –
哇我已经决定接受你的答案,但我需要采取几分钟。谢谢解答更新已答复 –