- BOOL은 실제로 8비트의 저장 공간을 갖는 부호 있는 문자(singed char) 타입을 단지 형 정의한 것이다. YES는 1로 정의되어 있고 NO는 0으로 정의되어 있다.
Objective-C는 BOOL을 YES나 NO의 값만을 담을 수 있는 진정한 Boolean타입으로 여기지 않는다. 컴파일러는 BOOL을 8비트 숫자로 인식하고 YES와 NO값은 단지 관습이다. 이는 미묘한 결과를 낳는다. 만일 무심코 1바이트 보다 큰 값의 정수를 BOOL변수에 넣는다면, BOOL 변수의 값에서 하위 1바이트만 사용한다. 예를들어 8960, 16진수로 0x2300인 경우 BOOL값은 0, 즉 NO가 된다.
'IOS > Objective-C' 카테고리의 다른 글
Property List (0) | 2015.08.20 |
---|---|
Archive (0) | 2015.08.20 |
Copy (0) | 2015.08.18 |
Zone (0) | 2015.08.18 |
클래스 클러스터 (0) | 2015.08.12 |