回答:
多田:
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
し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
。