【发布时间】:2015-10-06 13:49:15
【问题描述】:
假设在 iOS 中我们有:
在 W2AppDelegate.m 中:
全局视图控制器 *globalVc; - (BOOL)应用程序:(UIApplication *)应用程序 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ... }在 SomeOtherViewController.m 中:
- (void)viewDidLoad { [超级视图DidLoad]; [globalVc doSomething^{ [globalVc.someVariable doSomethingElse]; // 这里有保留循环吗? }]; }这里有一个保留循环,因为我们在块内有一个对 globalVc 的强引用。
globalVc -> 块 -> globalVc
【问题讨论】:
-
我想下面的每个人都在说这个:“globalVc -> block -> globalVc”是一个循环,但这取决于:“globalVc -> block”在你的代码中是真的,这还不清楚从问题。
标签: ios objective-c objective-c-blocks retain-cycle