2016-12-11 10 views
0

При необходимости после установки.Argument labels '(_ :)' не соответствуют никаким перечням

Получить "АРГУМЕНТ ярлыки '(_ :)' не найдено доступных перегруженные"

В этом коде:

@IBAction func calculateButton(sender: UIBarButtonItem) { 


     let w = Float(panelWidthTextField!.text!) 
     let sw = Float(panelsWideTextField!.text!) 
     let pi = Float(panelPitchTextField!.text!) 
     let sizew = sizeWidthModel(pw:w!,psw:(sw)!,ptc:pi!) 

     let formatter = NumberFormatter() 
     **// Error is on the line under.** 
     let swt = formatter.stringFromNumber(NSNumber(sizew.width()))! 

SizeWidthModel:

import Foundation 

class sizeWidthModel { 
var pw:Float 
var psw:Float 
var ptc:Float 

init (pw:Float,psw:Float,ptc:Float){ 
    self.pw=pw 
    self.psw=psw 
    self.ptc=ptc 
} 

func width()->Float { 
    return pw*psw/ptc 
} 

func wswidth()->Float { 
    return pw*psw 
} 
} 

Вся помощь ценится

+0

Каков тип 'sizew'? что возвращает 'sizeWithModel()'? – bsarrazin

+0

FYI - любое использование '!' В вашем коде означает «сбой здесь». – rmaddy

ответ

1

Я думаю, вы используете swift3.0

Swift3.0 нужно очистить имя параметра в отсутствие «_» модификации записи параметров

так использовать:

let swt = formatter.string(from: NSNumber(value:sizew.width()))! 
+0

Спасибо, это было все, что мне нужно :-) – lightmaster2006

1

Хорошо, сначала с классов всегда должен начните с буквы верхнего регистра, вот как вы узнаете, что это типы.

Эта линия let swt = formatter.stringFromNumber(NSNumber(sizew.width()))! принимает Float его преобразования в NSNumber, затем проходит через форматировщику, в конечном итоге, как String

Почему просто не использовать интерполяцию строки?

let swt = "\(sizew.width())"

+1

Коррекция, имена классов * должны начинаться с буквы верхнего регистра. Это стандарт, а не требование. – rmaddy