2015-02-09 63 views
0

我对IOS编程非常陌生,所以很感谢Swift专家的一些指导。 我有一个用Objective-C编写的应用程序,我将其转换为Swift。它使用自定义键盘在文本框中输入四位数值。每次用户输入一个数字时,它都被除以十。例如。用户输入1和它显示为0.1时,用户输入12它显示为1.2,在用户输入123它显示为12.3等 其实现,这是本Objective-C代码:Swift Number Objective-C格式转换

-(IBAction)buttonPress1:(UIButton *)sender 
{ 
    if (textviewZFW.text.length <= 4) { 
     NSString *digit = sender.currentTitle; 
     textviewZFW.text =[textviewZFW.text stringByAppendingString:digit]; 
     NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
     [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
     [numberFormatter setGroupingSeparator:@""]; 
     [numberFormatter setMaximumIntegerDigits:3]; 
     [numberFormatter setMaximumFractionDigits:1]; 
     [numberFormatter setMinimumFractionDigits:1]; 
     textviewZFW.text = [textviewZFW.text stringByReplacingOccurrencesOfString:@"." withString:@""]; 
     NSDecimalNumber *ZFW = [[NSDecimalNumber decimalNumberWithString:textviewZFW.text] decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithString:@"10"]]; 
     textviewZFW.text = [numberFormatter stringFromNumber:ZFW]; 
    } 
} 

这工作刚精细。

我正在通过所有的Swift教程和苹果指南等工作,但尚未达到相同的结果。到目前为止,我只能拿到顶几行没有小数点的工作:

@IBAction func ButtonPress1(sender: AnyObject) { 

    if(ZFW.text.utf16Count <= 3){ 
     var digit = sender.currentTitle? 

     ZFW.text = ZFW.text.stringByAppendingString(digit!) 
    } 
} 

任何人都可以点我在正确的方向写斯威夫特代码,以反映Objective-C的上方。 感谢

回答

2

希望现在你会得到一些想法,如何迅速作品

斯威夫特代码:

if ((textviewZFW?.text.utf16Count) <= 3) { 
     var digit: NSString? = sender.currentTitle 
     textviewZFW?.text = textviewZFW?.text.stringByAppendingString(digit!) 
     var numberFormatter: NSNumberFormatter = NSNumberFormatter(); 
     numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle; 
     numberFormatter.groupingSeparator = "" 
     numberFormatter.maximumIntegerDigits = 3 
     numberFormatter.maximumFractionDigits = 1 
     numberFormatter.minimumFractionDigits = 1 
     textviewZFW?.text = textviewZFW?.text.stringByReplacingOccurrencesOfString(".", withString: "", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil) 
     var zfwDecimal: NSDecimalNumber? = NSDecimalNumber(string: textviewZFW?.text).decimalNumberByDividingBy(NSDecimalNumber(string: "10")) 
     textviewZFW?.text = numberFormatter.stringFromNumber(zfwDecimal!) 
    } 
+1

万致谢,arthankamal。这绝对是完美的! – smi6086 2015-02-09 23:50:40