4

我最近在 Facebook 的应用切换中遇到了一个问题。我需要在 Facebook 登录后调用一个块。

首先,当应用程序切换回来时,我的块被破坏了(因为它在堆栈上),所以我决定保留它。但这没有用,我把这个问题搞砸了:/。我在那个博客这里找到了一个解决方案。

我的问题很简单:为什么复制有效而保留无效

4

2 回答 2

11

因为当你创建一个块时,没有什么要保留的,因为它不存在于堆中,直到你用Block_copy. 这在 WWDC 关于块的讲座中有所介绍。

更多信息: http ://www.friday.com/bbum/2009/08/29/blocks-tips-tricks/

于 2013-02-04T09:29:24.797 回答
6

请参阅我最近对另一个类似问题的回答:

默认情况下,块是在堆栈上创建的。这意味着它们只存在于它们被创建的范围内。
[...]
阅读Mike Ash在 Objective-C 中的堆栈和堆对象,了解有关堆栈与堆的更多信息。

于 2013-02-04T09:37:46.560 回答