请原谅我,如果这是一个基本问题,我正在学习Objective-C和iphone编程,我想做一个显示平衡的简单UILabel。有一个UITextField和一个提交按钮供用户输入余额。一旦用户点击提交,UILabel将显示新的余额。
我的问题: 用户仅输入一个数字(例如“500”),但我希望UILabel在其前面显示默认的美元($)。 (例如“$ 500”)
在我的实现中,我使用了这段代码:
- (IBAction)submitButtonPressed:(id)sender {
self.balance.text = self.balanceTextField.text;
}
当我尝试添加NSLog选项以强制显示为字符串时: self.balanceTextField.text = NSLog(@“$%@”,balanceTextField)
Xcode给出了我正在尝试从Void类型调用字符串类型的错误。
我怎样才能解决这个问题,并在我的UILabel中自动显示该美元符号? 感谢
答案 0 :(得分:3)
NSLog是一种日志记录方法 - 它不是通用的“格式化像这样的字符串”方法。你要找的是+[NSString stringWithFormat:]
。
self.balance.text = [NSString stringWithFormat:@"$%@", self.balanceTextField.text];
正如JB13所指出的那样,您可能希望使用NSNumberFormatter为您格式化文本。
答案 1 :(得分:0)
如何将辅助方法格式化为货币而不仅仅是$符号
- (NSString *)currencyFormatFromNumber:(NSNumber*)number
{
NSString *output = nil;
if (number != nil)
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
output = [formatter stringFromNumber:number];
formatter = nil;
}
return output;
}
...
self.balance.text = [self CurrencyFormatFromNumber:[NSNumber numberWithDouble:[self.balanceTextField.text doubleValue]]];
答案 2 :(得分:0)
执行此操作的两种最常见的方法 (稍作修正,如果字符串为nil会怎样?) :
(1)
self.balance.text = [NSString stringWithFormat:@"$%@", self.balanceTextField.text?self.balanceTextField.text:@"0"];
(2)
self.balance.text = [@"$" stringByAppendingString: self.balanceTextField.text?self.balanceTextField.text:@"0"];