답변:
따다 :
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
변환하지 않고 사용할 수 있습니다 .