У меня есть небольшой фрагмент кода, который, как я заметил, ведет себя по-разному для целей 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 нет.