你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS學習筆記44--ASIRequestHttp之BUG(一)

IOS學習筆記44--ASIRequestHttp之BUG(一)

編輯:IOS開發綜合
  其實這也是無意間看到的,大家看看是不是這麼回事 BUG:當下載線程數超過2時,就會影響到主線程響應用戶請求的速度了 看ASIRequestHttp.m--requestFinished代碼 - (void)requestFinished { #if DEBUG_REQUEST_STATUS || DEBUG_THROTTLING ASI_DEBUG_LOG(@"[STATUS] Request finished: %@",self); #endif if ([selferror] || [selfmainRequest]) { return; } if ([selfisPACFileRequest]) { [selfreportFinished]; }else { [selfperformSelectorOnMainThread:@selector(reportFinished)withObject:nilwaitUntilDone:[NSThreadisMainThread]]; } } 你會發現在不使用自動代理腳本時,就會在主線程執行reportFinished。 解決辦法: 一:繼承ASIRequestHttp重寫requestFinished方法; 二:懶人辦法,直接修改原來ASIRequestHttp方法;看如下代碼 - (void)requestFinished { #if DEBUG_REQUEST_STATUS || DEBUG_THROTTLING     NSLog(@"[STATUS] Request finished: %@",self); #endif    if ([selferror] || [selfmainRequest]) {        return;     }     [selfreportFinished]; } 修改完發現至少5個下載線程時也不會影響主線程了,是不是很神奇。  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved