可能重複:
Is there a difference between YES/NO,TRUE/FALSE and true/false in objective-c?YES/TRUE之間的區別?
我有一個問題,它可以迅速地回答。 我有這樣的代碼:
.h
UITableView *table;
.m
table.hidden = YES;
table.hidden = TRUE;
有代碼的最後兩行之間有什麼區別?或者完全相同是和是?
可能重複:
Is there a difference between YES/NO,TRUE/FALSE and true/false in objective-c?YES/TRUE之間的區別?
我有一個問題,它可以迅速地回答。 我有這樣的代碼:
.h
UITableView *table;
.m
table.hidden = YES;
table.hidden = TRUE;
有代碼的最後兩行之間有什麼區別?或者完全相同是和是?
的TRUE
宏僅設置有C代碼作爲向後兼容(目標C被設計成嚴格的超集的C)。他們都是同樣的意思。
in objective-c YES
和TRUE
是一樣的東西。
此外,這些可以表示爲1和0,因爲它們通常以核心數據的方式存儲。
[NSNumber numberWithBool:YES];
目標C中BOOL
的原始成功值爲YES
。 TRUE
只是模擬它的兼容性。你可以同時使用,但我強烈建議你使用最初爲該語言設計的內容。這對於未來語言更新改變語言語法中的任何內容(在這種情況下不可能發生)來說非常重要,使用原始語法不會導致您修復舊代碼中的任何內容。
我建議選擇一個並堅持使用它,最好是'YES',因爲它使得它更明顯的是你正在編寫Objective-C代碼而不是純C代碼,但它確實是一個慣例。 – 2012-02-06 19:31:42
我相信他們在Objective-C中使用'YES'是因爲他們將他們的'BOOL'變量作爲問題來對應於方法命名約定。比如'BOOL isTrue = YES;' – MobileOverlord 2012-02-06 19:34:16
它們像CD一樣存儲,因爲核心數據存儲的對象不是BOOL,因此它使用NSNumber存儲BOOL,而類方法'numberWithBool'和實例匹配'boolValue'商店獲得標量值。 – Abizern 2012-02-06 19:40:33