Câu trả lời:
Một cách để làm điều đó là chuyển đổi thành chuỗi (vì chỉ có hai khả năng nên không khó):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
Tôi không nghĩ rằng có một công cụ định dạng cho các giá trị boolean.
Tôi muốn giới thiệu
NSLog(@"%@", boolValue ? @"YES" : @"NO");
bởi vì, ô, BOOLs được gọi YEShoặc NOtrong Objective-C.
Sử dụng bộ định dạng số nguyên %d, sẽ in một trong hai 0hoặc 1:
NSLog(@"%d", myBool);
Trong Objective-C, BOOLkiểu chỉ là một ký tự có dấu. Từ <objc/objc.h>:
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
Vì vậy, bạn có thể in chúng bằng cách sử dụng bộ %dđịnh dạng Nhưng điều đó sẽ chỉ in a 1hoặc a 0, không YEShoặc NO.
Hoặc bạn có thể chỉ sử dụng một chuỗi, như được đề xuất trong các câu trả lời khác.
Định dạng chuỗi để sử dụng với NSLog và [NSString stringWithFormat] được ghi lại ở đây:
BOOL / bool / boolean thậm chí không được đề cập ...
Chỉ cần thêm hàm dưới đây và chuyển cho nó BOOLgiá trị và phương thức sẽ trả vềNSString
- (NSString *)boolValueToString:(BOOL)theBool {
if (theBool == 0)
return @"NO"; // can change to No, NOOOOO, etc
else
return @"YES"; // can change to YEAH, Yes, YESSSSS etc
}
Tôi tin rằng cách dễ nhất để làm điều này là:
NSLog(@" %@", @(BOOL_VAL));
@(biểu hiện)
Tự động đánh giá biểu thức được đóng hộp và trả về đối tượng phù hợp theo nghĩa đen dựa trên giá trị của nó (tức là NSString cho const char *, NSNumber cho int, v.v.).