2016-11-24 16 views
1

と一致していませんNumberFormatterは引数ラベル「(_ :)は」使用可能な任意のオーバーロードに

lable2xValue.text = numberFormatter.string(from: value) 

この行の後の最初のそれは

このエラーがスローされることは予想に型「ダブル」の値を変換できません。そして、引数の型 'のNSNumber'

をXcodeはvalueNSNumber

に置き換え示唆します
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) 

答えて

4

コンパイラは

numberFormatter.string(from: NSNumber(value:value)) 

残念ながらそれはそれを示唆していない望んでいます。

迅速なヒント宣言ファイルで利用可能な初期化子を見るためにNSNumberを⌘クリックします。


は別のXcode 8.1でスウィフトの現在のバージョンではまた、あなたがNSNumberinitで最初のパラメータラベルvalueを追加する必要がDouble

NSNumberから
numberFormatter.string(from: value as NSNumber) 
+0

私はすでにあなたの答えを受け入れることに決めましたが、私は数分かかる必要があります。更新のお礼ありがとうございました –

2

キャストブリッジすることができます。

lable2xValue.text = numberFormatter.string(from: NSNumber(value: value)) 
+0

お返事ありがとうございました –

+0

@cristanlika Welcome mate :) –

関連する問題