Некоторая проблема с NumberFormatter - PullRequest
1 голос
/ 27 сентября 2011
 -(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.movie.budget» оно не принимает значение, оно принимает значение null. В первом виде у меня есть метки, в которых отображается текст. Теперь объект "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? Я делаю smmin здесь неправильно?

1 Ответ

1 голос
/ 27 сентября 2011

Вам необходимо ввести код валюты, если вы используете NSNumberFormatterCurrencyStyle.Код по умолчанию "$".Итак, строка должна выглядеть следующим образом

[formatter numberFromString:@"$34"];
...