내 응용 프로그램에서는 처음에 0
이 할당 된 long long 값 _flightId
에서 부울을 반환하는 함수가 있습니다. 아래 함수를 호출하기 전에 어느 시점에서 대개 값이 할당됩니다. long long에서 부울 값을 반환하는 것이 다릅니다.
@property (nonatomic, assign) long long flightId;
- (BOOL)isReady
{
return (_flightId);
}
문제
때때로, 그것은0
보다 다른 값을 할당도 힘든, 함수가
0
을 반환 할 것입니다. 예를 들어
:
_flightId
경우 = 92559101
함수 1
를 리턴한다.
_flightId
= 92559104
인 경우 함수는 0
을 반환합니다.
누군가가이 동작을 설명 할 수 있습니까?
가 반환 라인을 변경해보십시오 :'_flightId == 0을 반환? NO : YES; ' – rmaddy
나는 이것을 정말로 고마워했다. 그러나 나는 내가 설명했던 문제의 배경에 관심이있다. – freshking
아마도 오버 플로우 문제 일 것입니다. 'BOOL'은 단지'signed char'입니다. long long을 signed char로 밀어 넣으면 오버플로가 발생합니다. – rmaddy