2013-02-02 2 views
3

업데이트 한 후에 나타납니다, 나는 AFNetworking 프레임 워크에서 AFImageRequestOperation.m 및 AFHTTPClient.m이 경고를 받고 있어요 :이 블록에 강하게는 아이폰 OS 6.1로 업데이트 한 후 아이폰 OS 6.1

캡처 '작업'

this answer,을 바탕으로 내가 변수를 __weak 사용하여 ARC의 유지주기를 해결할 수주기를 계속 보유 으로 이어질 가능성이 높습니다. 또한

블록

사람이이 문제를 해결하는 방법을 알고 있나요 촬영 된 객체에 의해 유지 될 것이라고한다?

감사합니다.

+1

나는이 믿고 (그것은 내 아이폰 OS 6.0 응용 프로그램을 아무것도 표시되지 않는했지만, 엑스 코드 4.6은 단지 그들을 양육) : 최신 릴리스 버전을 볼 수 website를 확인하거나 최신이 GitHub의에서 커밋 동기화 AFNetworking 1.1에서 수정되었습니다. –

+1

정확히 1.1.0을 다운로드 했으므로 경고가 사라집니다. 최신 커밋이없는 마스터 브랜치를 다운로드했다. Keith에게 감사드립니다. – Maziyar

답변

0

OK 약한 참조를하고 제공함으로써 그것은 해결 될 수있다이 문제 을 방지하기 위해 경고를 보여주는 운입니다. 계속 GitHub에서 Master branch을 다운로드하고 AFNetworking from here (버전 1.1.0)을 다운로드하려고 시도했지만 더 이상 경고가 표시되지 않습니다.

내가 다운로드 할 때 최신 커밋이 마스터 브랜치에 포함되지 않은 이유는 아니지만 이전에는 블록 경고에서 이러한 강력한 참조를 분명히 해결했습니다. 항상

4

우리는 엑스 코드 4.6 문제를 여기

AFImageRequestOperation *requestOperation = [[AFImageRequestOperation alloc] initWithRequest:urlRequest]; 

**__weak AFImageRequestOperation *tempRequestOperation = requestOperation;** 

[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    if (success) { 
     UIImage *image = responseObject; 
     if (imageProcessingBlock) { 
      dispatch_async(image_request_operation_processing_queue(), ^(void) { 
       UIImage *processedImage = imageProcessingBlock(image); 

       dispatch_async(**tempRequestOperation**.successCallbackQueue ?: dispatch_get_main_queue(), ^(void) { 
        success(operation.request, operation.response, processedImage); 
       }); 
      }); 
     } else { 
      success(operation.request, operation.response, image); 
     } 
    } 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    if (failure) { 
     failure(operation.request, operation.response, error); 
    } 
}]; 
+0

안녕하세요 Sunny, 나는 똑같은 일을했지만 경고는 여전히 있습니다. 이전에 새로운 커밋이 이러한 문제를 해결했다고 말했기 때문에 나는 새로운 커밋이있는 최신 AFNetworking 프레임 워크를 다운로드했습니다. 그러나 경고는 여전히 존재합니다. 경고는 여기에 있습니다 : AFHTTPCliend.m line # 564 NSMutableArray * mutableOperations = [NSMutableArray array]; 및 AFImageRequestOperation.m 라인 # 85 dispatch_async (operation.successCallbackQueue : dispatch_get_main_queue()^(공극) { 성공 (operation.request, operation.response, processedImage) }); Btw, 내 응용 프로그램이 추락하지 않았거나 어떤 문제가 보였다. – Maziyar

+0

위의 솔루션을 구현하고 그것이 나를 위해 일했습니다. 따라서 우리가 제공 한 최신 버전이나 솔루션을 다운로드해야합니까? – Harini