1
 -(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_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 值?我在这里做错了吗?

4

1 回答 1

1

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

[formatter numberFromString:@"$34"];
于 2011-09-27T12:23:48.577 回答