【发布时间】:2013-11-02 15:52:05
【问题描述】:
This tutorial 建议您可以这样做:
dispatch_async(queue, ^{
if (_valid) {
[self processFile:fileURL];
}
});
但我持怀疑态度。块复制变量的值(捕获范围)。所以 _valid 将是 YES 或 NO 取决于我创建此块时的情况。该块将使用这个捕获的值,而不是查找实例变量的实际值。对吗?
【问题讨论】:
-
参见 Blocks Programming Topics 的 Blocks and Variables 部分,该部分观察到块保持对被引用对象的强引用(或对于 ivars,隐式到
self),而不是复制它们。
标签: objective-c memory-management objective-c-blocks