在EditViewController中保存NSDecimalNumber时,in DisplayTableViewController value显示为NaN
请提供解决此问题的建议。谢谢
我的代码:
- (IBAction)saveChanges:(id)sender {
editGift.nameOfGift = nameTextField.text;
editGift.priceOfGift = [NSDecimalNumber decimalNumberWithString:priceTextField.text];
AppDelegate *myApp = (AppDelegate *) [[UIApplication sharedApplication]delegate];
[myApp saveContext];
[self.delegate editGiftViewControllerDidSave:self];
}Please watch video explanation
输入值:
currencyFormatter = [[NSNumberFormatter alloc]init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
personGift.priceOfGift = [NSDecimalNumber decimalNumberWithString:priceTextField.text];发布于 2012-12-19 23:06:03
您的代码不清楚何时应用货币格式,但根据您的视频,文本字段的值很可能是"$6,000“。这不是一个数字(因此是"NaN")。
发布于 2012-12-19 23:08:02
NSDecimalNumber文档中写道:
除数字外,numericString还可以包括首字母“+”或“-”;单个“E”或“e”,用于指示数字在科学记数法中的指数;以及单个NSDecimalSeparator,用于将数字的小数部分与整数部分分开。
您必须验证priceTextField.text中的字符串是否只包含有效字符-并且顺序有效。需要特别检查的一件事是您是否有小数点或小数逗号,这取决于用户的区域设置。因此,您可能需要考虑使用:
+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numericString
locale:(NSDictionary *)localehttps://stackoverflow.com/questions/13953495
复制相似问题