2014-09-09 1 views
3

내가 AFNetworking 2.0setImageWithURLRequest : placeholderImage : 성공 : 실패는 더 블록은

와 함께 URL에서 비동기 적으로 이미지를 얻으려고라고하지

내 문제는 어느 것도 성공이나 실패가

나는했습니다

라고한다는 것입니다 내가 볼 때 문제가 여기

UIImageView *imgv = [[UIImageView alloc] init]; 
[imgv setImageWithURLRequest:myURL 
      placeholderImage:nil 
        success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { 
             /*some code*/ 
        failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { 
             /*some code*/  
]; 

되지 않도록 브라우저에서 내 URL을 확인 깊은 setImageWithUrlRequest:placeholderImage:success:failure

내부 (210)

내 코드가는 성공 trought [self.af_imageRequestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 하지만 난 __strong __typeof(weakSelf)strongSelf = weakSelf; 모두 nil

어떤 생각입니다 것으로 나타났습니다?

+0

'할당 해제'를 방지하려면 'imgv'에 대한 강력한 참조를 유지해야합니다. 그것을 인스턴스화하고'setImageWithUrlRequest : placeholderImage : success : failure'를 호출하는 것 이외에 무엇을하고 있습니까? –

+0

내가 afnetworking 1.xx를 사용했을 때 나는이 작업을하고 있었다. [imgv setDownloadProgressBlock :^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {}] 그러나 Afnetworking 2.0에서는 더 이상이 작업을 수행 할 수 없다. 더 이상 일하지 않아? 그래서 지금은 아무 것도하지 않고있다. – Titozzz

+0

어쩌면 당신은 뷰 계층 구조에'imgv '를 추가해야하고, 그래서 그것에 대한 강력한 참조를 유지해야한다. –

답변

4

당신의 imgv는 결코 유지되지 않으므로 현재 범위 이후에 해제 될 것입니다. weakSelf는 이미지가 successfuly 다운로드 될 때 release 될 것이므로 왜 없나?

+0

나를 위해, 나는 이미지 뷰를 메소드에서 초기화했고, 블록이 리턴되기 전에 메소드가 종료되었으므로 분명히 이미지 뷰는 할당이 해제되었습니다. 나는 이미지 뷰를 클래스 레벨 변수로 만들어서 고쳤다. – cph2117