2012-02-06 78 views

回答

6

TRUE宏僅設置有C代碼作爲向後兼容(目標C被設計成嚴格的超集的C)。他們都是同樣的意思。

0

in objective-c YESTRUE是一樣的東西。

此外,這些可以表示爲1和0,因爲它們通常以核心數據的方式存儲。

[NSNumber numberWithBool:YES];

+0

我建議選擇一個並堅持使用它,最好是'YES',因爲它使得它更明顯的是你正在編寫Objective-C代碼而不是純C代碼,但它確實是一個慣例。 – 2012-02-06 19:31:42

+0

我相信他們在Objective-C中使用'YES'是因爲他們將他們的'BOOL'變量作爲問題來對應於方法命名約定。比如'BOOL isTrue = YES;' – MobileOverlord 2012-02-06 19:34:16

+0

它們像CD一樣存儲,因爲核心數據存儲的對象不是BOOL,因此它使用NSNumber存儲BOOL,而類方法'numberWithBool'和實例匹配'boolValue'商店獲得標量值。 – Abizern 2012-02-06 19:40:33

1

目標C中BOOL的原始成功值爲YESTRUE只是模擬它的兼容性。你可以同時使用,但我強烈建議你使用最初爲該語言設計的內容。這對於未來語言更新改變語言語法中的任何內容(在這種情況下不可能發生)來說非常重要,使用原始語法不會導致您修復舊代碼中的任何內容。