2009-03-27 15 views

Odpowiedz

26
typedef signed char  BOOL; 
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C" 
// even if -funsigned-char is used. 
#define OBJC_BOOL_DEFINED 


#define YES    (BOOL)1 
#define NO    (BOOL)0 

(Dla odniesienia)

[button setAttr:YES]; 

Brzmi ładniejszy IMHO potem ...

[button setAttr:TRUE]; 
52

Uczynienie go bardziej czytelnym jest z przyczyn technicznych.

+4

Wcześniej przegłosowano, ponieważ nie odpowiada na pytanie. Co najwyżej jest to komentarz. –

1

To tylko składnia, nie ma z tego technicznego powodu. Po prostu używają TAK/NIE dla swoich BOOL zamiast prawdziwych/fałszywych jak C++.

+0

Uprzejmie głosowano, ponieważ nie odpowiada na pytanie. –

8

Z tego samego powodu większość języki używać true i false ... Można używać 1 i 0, jeśli chcesz, tak samo jak każdy z tych języków.

Naprawdę, jeśli myślisz o tym, że mówimy o:

#define YES 1 
#define NO 0 

To po prostu ładniejszy czytać.

+0

dobre wyjaśnienie – wprl

+1

nadal można używać wartości true/false w celu-c – zpesk

+0

@zPesk: Dokładnie. @SoloBold: Dzięki :) – rfunduk

-6

To samo jak prawda/fałsz ..

nie pytaj mnie dlaczego oni odkrywać koła i zmienił nazwiska.

Moja pesonal Domyślam się, że projektant język pomyślałem, że byłoby fajnie być inaczej ... (Tak, wiem, że będę się downvotes od wentylatora chłopców) ..

+1

Nie sądzę, że wymyślili nowe koło, ale po prostu dodają przejrzystości. I tak, właśnie to. – Rev316

+9

To nie tyle, że "wymyślili" koło. Poprzedziły one wykonanie booleans w C.Nie mając nic do skopiowania, zaimplementowali go tak, jak chcieli. –

+0

Koło Apple: http://www.youtube.com/watch?v=9BnLbv6QYcA –

23

C (na którym Cel -C oparte) nie ma typu boolowskiego do C99.

Objective-C został stworzony w latach 80. i zdefiniował własny typ boolowski.

+10

'Objective-C' to _to 80-szy styl. –

19

Ponieważ programista oznaczatak i nr, nie i .

Powiązane problemy