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

Is it safe to pass a view controller as an argument to AFNetworking request?

这样是不是内存泄漏或者其他问题?

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

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


}

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

但是您的代码揭示了另一个问题:请务必在主线程上执行每个 UI 修改,否则您将遇到随机崩溃。

编辑要求提供更多详细信息:

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

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