NumberFormatter 的一些问题

发布于 2024-12-06 21:07:52 字数 1258 浏览 6 评论 0原文

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

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

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

The Above code is from the Movie_LibraryEditorViewController.m file which is my second view in my project. In "self.movie.budget" it doesn't take the value, it takes as null.
In the First View i have labels in which the text is displayed.
Now "movie" object is of the class Movie_Library in which i have overridden the following method.

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

Now my question is Why the Null value? Am i doing smmin wrong here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

韵柒 2024-12-13 21:07:52

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

[formatter numberFromString:@"$34"];

You need to type the currency code if you use NSNumberFormatterCurrencyStyle. Default code is "$". So, the string should look like this

[formatter numberFromString:@"$34"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文