1
我正在研究AFNetworking
(3.0)源代碼。 我注意到在AFURLSessionManagerTaskDelegate
的方法爲什麼在AFURLSessionManagerTaskDelegate中使用__weak __typeof __(task)weakTask = task?
- (void)setupProgressForTask:(NSURLSessionTask *)task {
__weak __typeof__(task) weakTask = task;
...}
使用weak
任務。我知道下面的代碼塊會持有任務的強烈參考,這意味着如果不使用弱任務,AFURLSessionManagerTaskDelegate
將強有力地保留任務。
但是這個任務沒有堅守住AFURLSessionManagerTaskDelegate
,沒有循環引用。
那麼爲什麼必須有一個薄弱的任務?