模拟器和IRL iPhone没有相同的行为

时间:2012-10-23 16:52:49

标签: iphone objective-c xcode simulator

所以,我的转换器应用终于工作了,但有一个主要问题。它不适用于IRL iPhone,只适用于模拟器iPhone。 像这样(IRL iPhone):

IRL Iphone

模拟器手机也是这样的: simulator iPhone

IDK为什么这个小得多。

我能找到的唯一区别是我的手机是挪威语,因此那里的键盘上有逗号','而不是句号'。'

计算它的内容的代码在http://pastebin.com/nGaw7Agj

TLDR irl iphone不做正确的事,但xcode模拟器呢。

1 个答案:

答案 0 :(得分:3)

  

我能找到的唯一区别是我的手机是挪威语,所以那里的键盘上有逗号','而不是句号'。

这就是答案。由于您具有不同的区域设置,因此第一个区域将舍入为13而不是13.37。我不知道你在这里工作的数量,但在这两种情况下,你似乎乘以常数~133.4247,所以两种情况下的计算都相同。

问题是您在读取字符串中的值时没有使用NSNumberFormatterNSNumberFormatter将为您处理区域设置。使用[NSString floatValue]是将字符串转换为数字的一种非常粗略的方式,您无法控制区域设置转换。

在这一行

float input = [inputText.text floatValue];

我建议改为

NSNumberFormatter* fmt = [NSNumberFormatter new];
float input [fmt numberFromString:inputText.text].floatValue;