【发布时间】:2014-05-08 10:33:57
【问题描述】:
我应该将其声明为
(#1)ClassName * __block variableName
或
(#2)__block ClassName * variableName
?
我看到很多代码使用格式 #2,包括 Apple 的 Blocks Programming Topics。
但最近我发现苹果的“Transitioning to ARC Release Notes”说:
你应该正确地装饰变量。在对象变量声明中使用限定符时,正确的格式是:
ClassName * qualifier variableName;例如:
MyClass * __weak myWeakReference;其他变体在技术上是不正确的,但已被编译器“原谅”。要了解该问题,请参阅http://cdecl.org/。
所以我很困惑,我以后应该使用哪种格式?
【问题讨论】:
-
我觉得苹果的注释已经很清楚了。 #2 是正确的,但编译器允许您使用 #1(因为每个人都在使用 #1)。就像 C/C++ 中的
const int *和int const * -
@BryanChen 你的数字搞错了吗? Apple 的文档说你可以使用 #2,但说 #1 确实是正确的方法,正如他在帖子中引用的那样。
-
@DanZimm 你是对的。不幸的是我无法编辑它...
标签: ios objective-c variables syntax