我有一小段代码,我注意到arm64目标的行为有所不同。我正在从JSON数据中获取一个数字字符串,然后使用integerValue将字符串转换为整数。该字符串通常以逗号形式具有数千个分隔符。

在非64位目标(iPhone 4 / s,5 / s等)上,一切运行正常,无论是否有逗号分隔成千上万,我都能得到正确的整数。但是,在arm64上,integerValue仅返回分隔符逗号之前的第一个数字“块”。我已经包含了代码和示例结果以显示实际发生的情况:

NSInteger value = [BTCValue integerValue];
[UIApplication sharedApplication].applicationIconBadgeNumber = value;


例如,在非64位目标上:
BTCValue = @"54,321.00"value = 54321

但是,在arm64目标上:
BTCValue = @"54,321.00"value = 54

value是int还是NSInteger似乎都无关紧要,无论如何都会发生相同的事情。有什么我想念的吗?我不明白为什么在armv7上一切正常,但在arm64上却无法正常工作。

最佳答案

您的ARM64设备可能具有一种语言环境设置,导致该逗号被视为十进制或简单地被视为非数字文本。

通常,最好使用NSNumberFormatter

Apple docs on NSNumberFormatter

关于ios - 在arm64上将字符串转换为整数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20938981/

10-10 21:03