gpt4 book ai didi

ios - 弹出 Controller 后网络请求返回

转载 作者:行者123 更新时间:2023-11-29 10:24:38 24 4
gpt4 key购买 nike

我在viewcontroller中发起网络请求,简化代码如下:

- (void)viewDidLoad {

[super viewDidLoad];

[self http_request];

}

- (void)http_request {

dispatch_async(gAsynQueueT, ^{

NSString *response;

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

sleep(5); //leave some time for poping this controller

[request startSynchronous];

NSError *error = [request error];

if (!error) {

response = [request responseString];

}

dispatch_async(gMainQueueT, ^{

_data = response; //_data is an global variable

});

});


}

在网络请求返回之前,我弹出了 Controller 。我认为这应该导致内存泄漏,导致当网络请求返回时 Controller 被释放。但是我发现仪器工具没有任何问题。

那么,如何解释这种情况。谢谢~

最佳答案

您已经使用了 dispatch_async(gAsynQueueT, {...}) 并且它将在另一个线程上运行。

并且在 block 中,您没有使用 View Controller 的属性,所以我认为没有内存泄漏的原因。

block 已经被分派(dispatch)到队列中,所以它无论如何都与 View Controller 无关。

关于ios - 弹出 Controller 后网络请求返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33013233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com