たとえば、そのようなインスタンスにvalue
メッセージを渡す場合NSInteger
[a value]
EXC_BAD_ACCESSが発生します。
では、をに変換する方法NSInteger
はint
?
関連する場合は、32未満の少数のみが使用されます。
たとえば、そのようなインスタンスにvalue
メッセージを渡す場合NSInteger
[a value]
EXC_BAD_ACCESSが発生します。
では、をに変換する方法NSInteger
はint
?
関連する場合は、32未満の少数のみが使用されます。
タダ:
NSInteger myInteger = 42;
int myInt = (int) myInteger;
NSInteger
32/64ビット整数にすぎません。(実行しているOS /プラットフォームに基づいて適切なサイズを使用します)
これをインラインで実行する場合は、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で一般的に使用される「エラー」は、32ビットではなく64ビットでコンパイルすると表示されます。新しい変数に渡さない簡単な方法は、このヒントを使用して(int)を追加することです。
[_monChiffre setUnite:(int)[_valUnites selectedSegmentIndex]];
それ以外の :
[_monChiffre setUnite:[_valUnites selectedSegmentIndex]];