古いSDKの「」で「」がどのようNSInteger
に定義されているかを次に示します。NSObjCRuntime.h
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
2013年9月の時点で、iPhoneは64ビットチップで実行できるようになりました。つまり、NSIntegerははるかに大きくなる可能性があります。
私自身のコーディングでは、純粋なObjective Cを実行している場合はNSInteger
、将来にわたってコードを将来にわたって利用できるようにするため、これに固執します。一方、オープンソースのものや特定のプログラマーは、「uint32_t
」や「int32_t
」などの明示的なタイプを使用するのが好きなので、それらを見ると、私が行っているコードでそれらのスタイルを一致させようとします。 。