我有一小段代码,我注意到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/