일반적으로 (uint - int)는 자동적으로 int로 자동형변환 시켜줍니다.(C#, C++등)

그런데 object c-2.0에서는 (uint - int)는 자동적으로 uint로 자동형변환 시키는 것 같습니다.( 확실하진 않음)

내부적으로 돌아가는 건 추측할 수 없지만 다음의 예는 직접 확인한 예로서 확실합니다.

if( (nsMutableArrayExample.length - location) >0)
{
// uint로 캐스팅하여 위의 식에서 음수의 값이 나올때 양수의 값으로 변환되어 버립니다. 에러.
}

if( (int)(nsMutableArrayExample.length - location) >0)
{
// 올바른 코드입니다. int로 정의된 location값이 nsMutableArrayExample의 길이보다 같거나 크면 음수의 값이 나와서 if문을 지나갑니다.
}
이 게시물을..