【发布时间】:2023-03-08 21:04:01
【问题描述】:
我必须修复一些使用 LLVM(在 iOS 上)构建得很好的现有代码,以便它也可以使用 llvm-gcc-4.2 构建。我已经完成了几乎所有的事情,除了在几个地方发现的这种模式:
@property (nonatomic, retain) __block id myProperty;
我怀疑这里的意图是允许从块内部访问该属性而不保留self。怎么去掉__block属性,gcc这里不支持,但还是一样的效果?
【问题讨论】:
-
我很确定您不需要
__block属性...它用于堆栈分配的本地人。无论如何,试试吧。如果没有错误,你就可以了。 -
来自 Clang 语言规范:“除了新的块类型,我们还引入了一个新的存储限定符 __block,用于局部变量”参见。 opensource.apple.com/source/clang/clang-137/src/tools/clang/…
标签: objective-c ios gcc llvm llvm-gcc