【问题标题】:Simulator and IRL iPhone not having the same behaviour模拟器和 IRL iPhone 没有相同的行为
【发布时间】:2012-10-13 16:24:08
【问题描述】:

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

模拟器手机也是这样:

IDK 为什么这个要小得多。

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

计算它的代码在这里http://pastebin.com/nGaw7Agj

TLDR irl iphone 没有做正确的事情,但 xcode 模拟器可以。

【问题讨论】:

    标签: iphone objective-c xcode simulator


    【解决方案1】:

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

    这就是答案。由于您有不同的语言环境,第一个四舍五入为 13,而不是 13.37。我不知道您在这里使用的是什么数量,但在这两种情况下,您似乎都在乘以一个常数 ~133.4247,因此两种情况下的计算都是相同的。

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

    在这一行

    float input = [inputText.text floatValue];
    

    建议改成

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

    【讨论】:

    • 好的。我该如何解决?就像,让键盘在所有设备上释放它只不过是一个英文键盘。编辑:是的,但是您可以看到答案有 0.5 的差异,这太不精确了。我需要它在两者上完全相同。
    • "No visible @interface for 'Nsnubmerformatter' 声明选择器 'localizedStringFromNumber:' 错误。修复?
    • 方法是[NSNumberFormatter localizedStringFromNumber: numberStyle:],例如[NSNumberFormatter 本地化StringFromNumber:@"3,1415" numberStyle:NSNumberFormatterDecimalStyle];
    • 这看起来很复杂。真的没有办法告诉键盘本身学习如何在所有语言中使用句号而不是逗号吗?
    • 我不明白这如何增加复杂性。我的猜测是,更改键盘的数字格式会复杂得多。
    猜你喜欢
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多