나는 bool이 C-Type이고 BOOL이 Objective-C Type 인 것을 이미 알았다. bool은 true 또는 false이고 BOOL은 YES 또는 NO가 될 수 있습니다.Objective-C : BOOL과 Bool을 잘못 사용 했습니까?
초보자의 경우 이러한 유형을 구별하기 어려울 수 있습니다. BOOL 대신 bool을 사용하면 문제가 될 수 있습니까?
나는 bool이 C-Type이고 BOOL이 Objective-C Type 인 것을 이미 알았다. bool은 true 또는 false이고 BOOL은 YES 또는 NO가 될 수 있습니다.Objective-C : BOOL과 Bool을 잘못 사용 했습니까?
초보자의 경우 이러한 유형을 구별하기 어려울 수 있습니다. BOOL 대신 bool을 사용하면 문제가 될 수 있습니까?
BOOL
가 signed char
입니다 :
난 당신이 다른 경우에는 차이에 대한 설명서를 참조 제안 표준). 거기에서 정수 타입 사이에서 승격/강등 할 때의 일반적인 고려 사항을 따를 수 있습니다.
은 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
호환성 문제가 일반적인 경우 매우 어렵다 (로 설정 YES/1 또는 0/아니오) : 당신은 또한 1 또는 0
이 모두 유효 사용할 수 없습니다. bool
의 (a int
입니다 사실, 사전 C99로 컴파일 할 때 typedef
다윈에 같은 D '있는 동안, http://developer.apple.com/documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html#//apple_ref/doc/c_ref/BOOL
기술적으로 myBool = 'Z'도 똑같이 유효하지만 YES와 NO 이외의 것을 사용하려면 BOOL의 의미에 위배됩니다. – Chuck