2016-04-06 88 views
1

我正在發送一個HTTP請求,其中我必須發送一個bool值。我嘗試了他們兩個。@(YES)vs [NSNumber numberWithBool:YES]

而且兩者都以相同的方式工作。我很困惑哪個更好?他們之間有什麼不同?

+0

「更好」的是什麼? –

回答

3

@(YES)是與[NSNumber numberWithBool:YES]相同的文字。我不知道文字表現是否會比直接調用慢一點。

2

其中之一是literal。另一個是通過快速初始化器創建的。

他們最終成爲具有相同內容的相同類型的對象,但我懷疑第一個對您(和其他人在查看您的代碼)更容易閱讀。

2

這兩種方法之間沒有區別,你應該沒問題。我更喜歡的是[NSNumber numberWithBool:YES],因爲它有時更容易閱讀,有時如果你回到代碼進行調試。 @(是)是nsnumber的字面語法,當您使用@「string」時,它與您創建NSString時完全相同

2

不能。編譯器會將@YES轉換爲[NSNumber numberWithBool:YES]

2

@(YES)是編譯器的特性。實際上,@(YES)轉換爲[NSNumber numberWithBool:YES],性能沒有區別。它提供了方便性和可讀性(類似於@ [],@ {})。

-1

要發送布爾試試這個:[NSNumber numberWithInt:1]