-(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”中,它不会取值,而是取为空。 在第一个视图中,我有标签,其中显示文本。 现在,“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值?我在这里做错了吗?
答案 0 :(得分:1)
如果您使用NSNumberFormatterCurrencyStyle
,则需要输入货币代码。默认代码为“$”。所以,字符串看起来应该是这样的
[formatter numberFromString:@"$34"];