NumberFormatter的一些问题

时间:2011-09-27 12:01:52

标签: objective-c delegates nsnumberformatter

 -(void)textFieldDidEndEditing:(UITextField *)textField
{
    if(textField == self.nameField)
    {
        self.movie.name = self.nameField.text;
    }
    else if(textField == self.summaryField)
    {
        self.movie.summary = self.summaryField.text;
    }
    else if(textField == self.budgetField)
    {
        NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
        [formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
        self.movie.budget = [formatter numberFromString:self.budgetField.text];
        NSLog(@"%@",self.movie.budget);
        [formatter release];
    }
}

上面的代码来自Movie_LibraryEditorViewController.m文件,这是我项目中的第二个视图。在 “self.movi​​e.budget”中,它不会取值,而是取为空。 在第一个视图中,我有标签,其中显示文本。 现在,“movie”对象属于Movie_Library类,我在其中覆盖了以下方法。

  

-(id)initWithTitle:(NSString *)newname budget:(NSNumber *)newbudget summary:(NSString *)newsummary
    {
        self = [super init];
        if(nil!=self)
        {
            self.name = newname;
            self.budget = newbudget;
            self.summary = newsummary;
        }
        return self;
    }

现在我的问题是 为什么Null值?我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

如果您使用NSNumberFormatterCurrencyStyle,则需要输入货币代码。默认代码为“$”。所以,字符串看起来应该是这样的

[formatter numberFromString:@"$34"];