Jak przekonwertować nsinteger na int?
Na przykład, gdy przekazujesz value
wiadomość do NSInteger
instancji jak tak
[a value]
powoduje EXC_BAD_ACCESS.
Więc jak przekonwertować NSInteger
na int
?
Jeśli ma to znaczenie, używane są tylko małe liczby
4 answers
Ta da:
NSInteger myInteger = 42;
int myInt = (int) myInteger;
NSInteger
to nic więcej niż 32/64 bitowy int. (użyje odpowiedniego rozmiaru w zależności od używanego systemu operacyjnego / platformy)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-17 07:16:27
Jeśli chcesz to zrobić inline, po prostu wrzuć NSUInteger
lub NSInteger
do 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-03 23:23:43
Nie jestem pewien, w jakich okolicznościach trzeba przekształcić NSInteger
na int
.
NSInteger to tylko typedef:
NSInteger Używane do opisu liczby całkowitej niezależnie od tego, czy budujesz system 32-bitowy, czy 64-bitowy.
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
#else
typedef int NSInteger;
#endif
Możesz użyć NSInteger
dowolnego miejsca, w którym używasz int
, bez jego konwersji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-24 12:12:00
Często używane w UIsegmentedControl, "błąd" pojawia się podczas kompilacji w 64 bitach zamiast 32 bitach, łatwym sposobem na nie przekazanie go do nowej zmiennej jest użycie tych wskazówek, dodaj (int):
[_monChiffre setUnite:(int)[_valUnites selectedSegmentIndex]];
Zamiast:
[_monChiffre setUnite:[_valUnites selectedSegmentIndex]];
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-12 19:42:10