我想從MyViewController類做異步URL請求(具有UrlRequestor類):內存泄漏「dispatch_async(dispatch_get_main_queue(),{」塊
UrlRequestor * urlRequestor = [UrlRequestor alloc] init]];
我設置MyViewController類爲代表UrlRequestor類:
urlRequestor.delegate = self;
我打電話getUrlData功能:
[urlRequestor getUrlData];
它是UrlRequestor.m文件中的getUrlData函數,用於爲多線程調度隊列。它看起來如此:
- (void) getUrlData {
.......
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
......
dispatch_async(dispatch_get_main_queue(), ^{
........
[self.delegate receivedGetData: parsedResponseData withActionCode: [NSNumber numberWithInt: DASHBOARD_REQUEST_DONE]];
}
}
}
我跑的個人資料泄漏的工具,我收到內存在最後一排漏100%:
[self.delegate receivedGetData: parsedResponseData withActionCode: [NSNumber numberWithInt: DASHBOARD_REQUEST_DONE]];
我在的iOS是新的,我沒有任何想法,爲什麼我在這裏有內存泄漏。感謝幫助。
我現在試着「分析」。這是一個很好的工具,謝謝。但是這個問題的文件沒有任何警告。 – Tatiana
我們可能應該將其移動到聊天:http://chat.stackoverflow.com/rooms/37800/memory-leak-when-delegate-is-called-from-dispatch-asyncdispatch-get-main-queue – Rob