문제

예를 들어 전달할 때 a value an에 대한 메시지 NSInteger 그렇게 인스턴스

[a value] exc_bad_access를 유발합니다.

그래서 변환하는 방법 NSInteger 에게 int?

관련이있는 경우 적은 숫자 <32 만 사용됩니다.

도움이 되었습니까?

해결책

타다 :

NSInteger myInteger = 42;
int myInt = (int) myInteger;

NSInteger 32/64 비트 int 이상입니다. (실행중인 OS/플랫폼에 따라 적절한 크기를 사용합니다)

다른 팁

이번을 인라인으로하고 싶다면 NSUInteger 또는 NSInteger an 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 an 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에서 일반적으로 사용되는 "Error"는 32bits 대신 64BITS로 컴파일 할 때 나타나며 새 변수로 전달하지 않는 쉬운 방법은이 팁을 사용하는 것입니다. (int):

[_monChiffre setUnite:(int)[_valUnites selectedSegmentIndex]];

대신에 :

[_monChiffre setUnite:[_valUnites selectedSegmentIndex]];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top