Ответ 1
У вас есть целочисленное значение указателя на объект NSString
. Чтобы проанализировать строку на целое число, вы должны сделать:
NSString *a = @"123abc";
NSInteger b = [a integerValue];
У меня есть этот бит кода Objective C, где я накладываю NSString
на int
:
NSString *[email protected]"123abc";
NSInteger b=(int) a;
NSLog(@"b: %d",b);
И NSLog
выводит этот вывод:
b: 18396
Может кто-нибудь объяснить мне, почему это происходит?
Я был под типом показов, в результате чего строка в целое число получала числовое значение из строки.
У вас есть целочисленное значение указателя на объект NSString
. Чтобы проанализировать строку на целое число, вы должны сделать:
NSString *a = @"123abc";
NSInteger b = [a integerValue];
Чтобы использовать числовое значение:
int val = [stringObj intValue];
или для NSInteger
:
NSInteger val = [stringObj integerValue];
Когда вы бросаете объект в целое число, вы получите указатель на адрес памяти. Вы можете вызвать [a integerValue]
, чтобы получить целочисленное значение строки.
Также при кастинге лучше использовать NSInteger
instate int
. Потому что при использовании 64-разрядной операционной системы a NSInteger
будет 64 бит.
Или с синтаксисом литералов Objective-C:
@([a intValue]);