【发布时间】:2016-07-26 08:10:53
【问题描述】:
我正在发出一个HTTP 请求,我必须在其中发送一个bool 值。我都试过了。
两者的工作方式相同。我很困惑哪个更好?他们之间有什么区别吗?
【问题讨论】:
-
“更好”是为了什么?
标签: ios objective-c http boolean nsnumber
我正在发出一个HTTP 请求,我必须在其中发送一个bool 值。我都试过了。
两者的工作方式相同。我很困惑哪个更好?他们之间有什么区别吗?
【问题讨论】:
标签: ios objective-c http boolean nsnumber
@(YES) 是编译器特性。其实@(YES)转换成[NSNumber numberWithBool:YES],性能上没有区别。是为了方便和可读性而提供的(类似于@[],@{})。
【讨论】:
不会。编译器会将@YES 转换为[NSNumber numberWithBool:YES]。
【讨论】:
这两种方法没有区别,你应该都可以。不过我更喜欢[NSNumber numberWithBool:YES],因为如果您返回代码进行调试,有时它更具可读性。 @(Yes) 是 nsnumber 的字面语法,当你使用 @"string" 为你创建 NSString 时完全一样
【讨论】:
一个是literal。另一个是通过便利初始化器创建的。
它们最终成为具有相同内容的相同类型的对象,但我怀疑第一个对象更容易让您(以及查看您的代码的其他人)阅读。
【讨论】:
@(YES) 是与[NSNumber numberWithBool:YES] 相同的文字。不知道字面量性能会不会比直接调用慢一些。
【讨论】: