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

上記のコードは、プロジェクトの 2 番目のビューである Movie_LibraryEditorViewController.m ファイルからのものです。「self.movi​​e.budget」では値を取らず、null として取ります。 最初のビューには、テキストが表示されるラベルがあります。現在、「映画」オブジェクトは、次のメソッドをオーバーライドしたクラス 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 に答える