2009-08-04 8 views
2

나는 bool이 C-Type이고 BOOL이 Objective-C Type 인 것을 이미 알았다. bool은 true 또는 false이고 BOOL은 YES 또는 NO가 될 수 있습니다.Objective-C : BOOL과 Bool을 잘못 사용 했습니까?

초보자의 경우 이러한 유형을 구별하기 어려울 수 있습니다. BOOL 대신 bool을 사용하면 문제가 될 수 있습니까?

답변

5

BOOLsigned char입니다 :

난 당신이 다른 경우에는 차이에 대한 설명서를 참조 제안 표준). 거기에서 정수 타입 사이에서 승격/강등 할 때의 일반적인 고려 사항을 따를 수 있습니다.

4

은 BOOL 대신 자신의 필요에 따라 BOOL을 사용할 수 있지만 'bool'을 다른 API에 전달할 때 문제가 발생할 수 있습니다. Objective-C 코드를 작성할 때 BOOL을 사용해야합니다. 대개는 미래 보장을 위해 사용해야합니다.

그러나 나는 그렇게 생각하지 않습니다. 단지 권장하지 않으며 Objective-C의 규칙을 따르지 않습니다.

부울은 BOOL의 YES 또는 NO 형식을 권장합니다. BOOL을 TRUE 또는 FALSE로 설정하는 습관이 있었지만 아무런 문제가 없습니다.

BOOL myBool; 
myBool = YES; // true 
myBool = TRUE; // true 
myBool = 1;  // true 
myBool = NO; // false 
myBool = FALSE; // false 
myBool = 0;  // false 
+2

기술적으로 myBool = 'Z'도 똑같이 유효하지만 YES와 NO 이외의 것을 사용하려면 BOOL의 의미에 위배됩니다. – Chuck

관련 문제