我正在发送一个HTTP
请求,其中我必须发送一个bool
值。我尝试了他们两个。@(YES)vs [NSNumber numberWithBool:YES]
而且两者都以相同的方式工作。我很困惑哪个更好?他们之间有什么不同?
我正在发送一个HTTP
请求,其中我必须发送一个bool
值。我尝试了他们两个。@(YES)vs [NSNumber numberWithBool:YES]
而且两者都以相同的方式工作。我很困惑哪个更好?他们之间有什么不同?
@(YES)
是与[NSNumber numberWithBool:YES]
相同的文字。我不知道文字表现是否会比直接调用慢一点。
其中之一是literal。另一个是通过快速初始化器创建的。
他们最终成为具有相同内容的相同类型的对象,但我怀疑第一个对您(和其他人在查看您的代码)更容易阅读。
这两种方法之间没有区别,你应该没问题。我更喜欢的是[NSNumber numberWithBool:YES]
,因为它有时更容易阅读,有时如果你回到代码进行调试。 @(是)是nsnumber的字面语法,当您使用@“string”时,它与您创建NSString时完全相同
不能。编译器会将@YES
转换为[NSNumber numberWithBool:YES]
。
@(YES)是编译器的特性。实际上,@(YES)转换为[NSNumber numberWithBool:YES],性能没有区别。它提供了方便性和可读性(类似于@ [],@ {})。
要发送布尔试试这个:[NSNumber numberWithInt:1]
“更好”的是什么? –