Как преобразовать NSInteger в int?
например, при переходе value сообщение NSInteger например вот так
[a value] это вызывает EXC_BAD_ACCESS.
Итак, как преобразовать NSInteger to int?
если это актуально, используются только небольшие числа
4 ответа:
та да:
NSInteger myInteger = 42; int myInt = (int) myInteger;
NSIntegerэто не более чем 32/64 бит int. (он будет использовать соответствующий размер в зависимости от того, какую ОС/платформу вы используете)
если вы хотите сделать это inline, просто закиньте
NSUIntegerилиNSIntegerдоint:int i = -1; NSUInteger row = 100; i > row // true, since the signed int is implicitly converted to an unsigned int i > (int)row // false
Я не уверен в обстоятельствах, когда вам нужно преобразовать
NSIntegerдоint.NSInteger-это просто typedef:
NSInteger Используется для описания целого числа независимо от того, выполняется ли построение для 32-разрядной или 64-разрядной системы.
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 typedef long NSInteger; #else typedef int NSInteger; #endifможно использовать
NSIntegerлюбое место, где вы используетеintбез преобразования.
обычно используется в UIsegmentedControl," ошибка " появляется при компиляции в 64 бит вместо 32 бит, простой способ не передать его в новую переменную-использовать эти советы, добавить (int):
[_monChiffre setUnite:(int)[_valUnites selectedSegmentIndex]];вместо :
[_monChiffre setUnite:[_valUnites selectedSegmentIndex]];