2014-03-12 1 views
0

이것은 일상적인 질문 일 수 있지만 최선의 방법을 알고 싶습니다. Xcode 5.1로 업그레이드 한 이후, arm64 스위치로 인해 NSInteger (일명 'long')에서 'int'로 손실 정수 정밀도에 대한 많은 경고가있었습니다.Xcode 5.1 NSInteger to int, 정밀도 손실

지금까지 예를 들어 경고 제거하는 타입 캐스팅되었습니다

int number = (int)[self.arrayOfUsers count]; 

또는 그냥 "더 나은"입니다

long number = (int)[self.arrayOfUsers count]; 

를 사용해야합니까? 나는 지금 주로 롱을 사용해야합니까?

감사합니다.

NSUInteger number = [self.arrayOfUsers count]; 

가 불필요하게 int 같은 것을 캐스팅하지 마십시오 당신이 올바른 데이터 형식을 사용하는 일을해야

답변

6

. 적절한 유형을 사용하십시오.

NSUInteger number = [self.arrayOfUsers count]; 

첫 번째 제안 :

int number = (int)[self.arrayOfUsers count]; 

는 또한 당신이 확신으로 잘 작동 것이라고에게 배열의 카운트가 이동하지 않습니다 당신이 할 수있는 경우

+0

아 ... 전 단지'int'를 사용하지 않아야합니다. – Alan

+0

항상 동일한 데이터 유형을 사용하는 것이 가장 좋습니다. 감사합니다. – rmaddy

+0

! NSUInteger를 사용하여 시작하겠다. – Alan

0

단순히 같은 형식을 사용 정수 제한 (2^31-1) 이상.

+0

'count' 메쏘드가'NSInteger'가 아니라'NSUInteger'를 반환한다는 것을 제외하고는. – rmaddy