【发布时间】:2010-07-02 06:28:50
【问题描述】:
我想在不使用 numbreFromString: 方法的情况下将 NSString 转换为 NSNumber? numbreFromString: metgod 在 4.0 中表现得很奇怪。所以我想使用另一种方法将 NSString 转换为 NSNumber。请帮帮我....
+ (NSString *)formatText:(NSString *) text withLocalSettings:(BOOL) isLacale {
NSNumber *aNsNumber= [numberFormatter numberFromString: text];
NSString *returnString = [NSString stringWithString:[numberFormatter stringForObjectValue:aNsNumber]];
if(isLacale) {
return returnString;
}
else {
return [NSString stringWithFormat:@"%lf",[aNsNumber doubleValue]];
}
}
0
我正在开发一个应用程序,我需要在 3.0 和 4.0 中运行我的应用程序。我有一个文本字段,当我尝试在文本字段中输入数字时,行为是这样的......在 3.0 中:- 它允许输入 7 个数字和 2 个小数值(我已将其格式化为这样)。我已根据所选国家/地区对数字以及逗号分隔符进行格式化和本地化。它在 3.0 和 3.1.2 中完美运行
IN 4.0 : - 它只允许您输入 4 个数字,在输入第 5 个数字后,它会使文本字段为空。当您输入第 5 个数字时不显示任何内容,当您输入第 6 个数字时,它从第 1 个数字开始并继续相同的直到 4 个数字。例如: - 当你输入 1234 时,文本字段出现 - 1234 当你输入 12345 时,文本字段出现“”。当你现在输入 6 时,它以 6 开头,依此类推..
我正在使用 NSNumberFormatter 和 numberfromstring 方法来格式化文本字段中输入的值。
我无法理解为什么会这样...请帮助我...
【问题讨论】:
-
我可能会尝试研究为什么该方法工作异常。在 10 个案例中有 9 个问题在于输入。发布您的代码和输入 - 这将使我们有更多的工作。
-
+(NSString *)formatText:(NSString *) text withLocalSettings:(BOOL) isLacale { [numberFormatter retain]; NSNumber *aNsNumber = [[NSNumber alloc]init]; aNsNumber= [numberFormatter numberFromString: text]; //NSLog(@"NSNumber的值为... %@",aNsNumber); NSString *returnString = [NSString stringWithString:[numberFormatter stringForObjectValue:aNsNumber]]; if(isLacale) { return returnString; } else { return [NSString stringWithFormat:@"%lf",[aNsNumber doubleValue]]; } }
-
aNSNumber 在 4.0 中在您在文本字段中输入 4 个数字后变为空,当您在文本字段中输入第 5 个数字并尝试调用此 formatText 方法时,aNsNumber 在 4.0 中变为空,但在 3.0 到 3.1 .3 它工作正常....
-
编辑您的问题以插入带有格式的代码 sn-p...
-
还可以查看 Apple 网站上的开发者论坛尝试搜索“numberfromstring ios4”,您可能会感兴趣的三个主题。