0
通常,在塊中使用強引用(保留週期)時,Xcode顯示警告。但是,我不明白爲什麼它沒有用這個AFNetworking
的例子顯示它。在AFNetworking成功塊中保留週期
UIImageView *imageView;
AFHTTPRequestOperation *operation = [apiQueryManager HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, NSData *responseObject) {
UIImage *image = [UIImage imageWithData:responseObject];
imageView.image =image; // <--- using strong ref to imageView ?
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"ERROR: %@", error);
}];
[apiQueryManager enqueueHTTPRequestOperation:operation];
這裏是否存在保留週期?
在你的例子Noe中,如果在塊中使用'operation',則會發生保留週期。 –
好吧,我現在得到它:)謝謝你們兩個 順便說一句,我認爲AFNetworking給成功塊參數作爲弱引用(如果我沒有弄錯),所以,@ GuyKogus,將沒有保留週期? –
保留週期通常發生在一個對象保留一個保留該對象的塊(我聽說這聽起來很混亂)。當你調用一個塊時,傳遞給它的參數不會保留在塊對象中(是的,塊是對象),所以沒有保留週期。 –