0

如果这是一个基本问题,请原谅我,我正在学习 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 中?谢谢

4

3 回答 3

3

NSLog 是一种记录方法——它不是一个通用的“像这样格式化一个字符串”的方法。您正在寻找的是+[NSString stringWithFormat:].

self.balance.text = [NSString stringWithFormat:@"$%@", self.balanceTextField.text];

但是,正如 JB13 指出的那样,您可能希望使用NSNumberFormatter为您设置文本格式。

于 2013-05-10T20:52:51.293 回答
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"];
于 2013-05-10T22:03:17.307 回答
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;
}

…</p>

self.balance.text = [self CurrencyFormatFromNumber:[NSNumber numberWithDouble:[self.balanceTextField.text doubleValue]]];
于 2013-05-10T21:00:35.037 回答