【发布时间】:2012-08-31 15:52:25
【问题描述】:
__weak MyClass *selfReference = self;
dispatch_async(dispatch_get_main_queue(), ^{
[selfReference performSomeAction];
});
- 何时需要将弱引用传递给块?
- 此规则是否适用于 dispatch_async 以及自定义块?
- 块是复制其中使用的 iVar 还是保留它们?
- 谁拥有在块内初始化的变量?谁应该释放它们?
【问题讨论】:
-
这些问题在苹果的文档中都有解答。
-
@JonathanGrynspan 你可以给一个文档的指针吗?
-
@JonathanGrynspan developer.apple.com/library/ios/#documentation/cocoa/Conceptual/… 这是文档的链接,但它没有回答我的问题
-
@aryaxt:继续阅读。这一切都在那里。 :)
-
@Jonathan Grynspan 请注意,所引用的文档没有提及 ARC,但关于块 WRT ARC 的一些内容(例如
__block现在创建了一个强引用)已经改变。
标签: objective-c memory-management objective-c-blocks