Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 添加一个简单的“$&引用;添加到动态UILabel_Objective C_Uilabel - Fatal编程技术网

Objective c 添加一个简单的“$&引用;添加到动态UILabel

Objective c 添加一个简单的“$&引用;添加到动态UILabel,objective-c,uilabel,Objective C,Uilabel,如果这是一个基本问题,请原谅,我正在学习objective-C和iphone编程,我想做一个简单的UILabel,显示一种平衡。有一个UITextField和一个Submit按钮供用户输入余额。一旦用户点击submit,UILabel将显示新的余额 我的问题是: 用户只输入一个数字(例如“500”),但我希望UILabel在其前面显示一个默认美元($)。(例如“500美元”) 在我的实现中,我使用了以下代码: - (IBAction)submitButtonPressed:(id)sender

如果这是一个基本问题,请原谅,我正在学习objective-C和iphone编程,我想做一个简单的UILabel,显示一种平衡。有一个UITextField和一个Submit按钮供用户输入余额。一旦用户点击submit,UILabel将显示新的余额

我的问题是: 用户只输入一个数字(例如“500”),但我希望UILabel在其前面显示一个默认美元($)。(例如“500美元”)

在我的实现中,我使用了以下代码:

- (IBAction)submitButtonPressed:(id)sender {

    self.balance.text = self.balanceTextField.text;
}
当我尝试添加NSLog选项以强制显示为字符串时: self.balanceTextField.text=NSLog(@“$%@”,balanceTextField)

Xcode告诉我一个错误,我试图从一个Void类型调用一个字符串类型

如何解决此问题并使美元符号自动出现在我的UILabel中?
谢谢

NSLog是一种日志记录方法,它不是一种通用的“像这样格式化字符串”方法。您要查找的是
+[nsstringwithformat:

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

但是,正如JB13所指出的,您可能希望使用一个来格式化文本。

NSLog是一种日志记录方法,它不是一种通用的“像这样格式化字符串”方法。您要查找的是
+[nsstringwithformat:

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

但是,正如JB13所指出的,您可能希望使用一个来格式化文本。

如何使用一个helper方法来格式化为Currency,而不仅仅是$sign

- (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;
}


用一个助手方法来格式化货币,而不仅仅是$符号,怎么样

- (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;
}


执行此操作的两种最常见的方法(稍加更正,如果字符串为零怎么办?是:

(一)

(二)


执行此操作的两种最常见的方法(稍加更正,如果字符串为零怎么办?是:

(一)

(二)


使用数字格式化程序的建议是正确的,但是似乎没有任何理由认为这是一个方法而不是一个函数(或者只是与OP的代码内联。它也不应该以大写字母开头——只有类型名称应该是。此外,没有必要将格式化程序设置为
nil
;在任何情况下,它都将在方法末尾由ARC发布。使用数字格式化程序的建议是正确的,但似乎没有任何理由这样做方法而不是函数(或者只是与OP的代码内联。它也不应该以大写字母开头——应该只有类型名称。此外,没有必要将格式化程序设置为
nil
;在任何情况下,它都将在方法末尾由ARC发布。这非常有帮助,谢谢,不过我将使用currency numberFormatter选项,因为它为我提供了2 dec。)这是非常有帮助的,谢谢,我会使用货币数字格式选项,因为它也给了我两个小数位!谢谢
self.balance.text = [@"$" stringByAppendingString: self.balanceTextField.text?self.balanceTextField.text:@"0"];