2012-03-31 6 views
2

typedef signed long CFIndextypedef unsigned int NSUInteger으로 변환하려면 어떻게해야합니까?CFIndex을 NSUInteger로 변환 하시겠습니까?

NSUInteger의 인수로 CFIndex을 사용하면 문제가 없습니다. 나는 그것을 캐스팅하지 않았고 컴파일러는 마음에 들지 않는 것처럼 보인다. 컴파일러가 나를 위해 변환을 수행합니까?

답변

4

CFIndex가 서명되어 있고 NSUInteger가 서명되지 않았으므로 여기서주의해야합니다. CFIndex -1을 반환하는 다양한 루틴이 있습니다. NSUInteger로 사용하기 전에 확인해야합니다.

+0

어떻게 확인하나요? – ma11hew28

+0

if (index> = 0) {NSUInteger uIndex = (NSUInteger) index; ...} else {error-or-return-or-whatever; } –