在动态UILabel中添加一个简单的“$”

时间:2013-05-10 20:50:37

标签: objective-c uilabel

请原谅我,如果这是一个基本问题,我正在学习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中自动显示该美元符号? 感谢

3 个答案:

答案 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"];