将视图控制器作为参数传递给AFNetworking请求是否安全?

时间:2015-02-07 15:42:57

标签: ios afnetworking

这样的事情不是内存泄漏或其他问题吗?

- (void) requestAndUpdateView: (UIViewController *) vc {

    [afHttpManager POST:....
            success:^(....){ [vc doSomething]} ...
    ...
    ];


}

1 个答案:

答案 0 :(得分:1)

不,它不是内存泄漏,因为在此范围内尚未创建vc,因此您不应该在其中管理它的保留计数。

但是,您的代码会显示另一个问题:确保在主线程上执行每个UI修改,否则您将遇到随机崩溃。

EDIT询问更多详情:

每个UI操作都应该在App的主线程上进行。 在Cocoa touch中,您的应用程序附加到主线程。 应用程序的主事件循环接收UI事件。 使用另一个线程(后台线程)来更改任何图形是一个坏主意,因为UIKit不是线程安全的。

我的猜测是afHttpManager在另一个线程中工作以避免冻结App的UI,因此执行的任何代码都将与afHttpManager位于同一个线程上。