performInvocation : 메소드에서 ASIHTTPRequest에 오류가 발생합니다.performInvocation에서 ASIHTTPRequest 충돌이 발생했습니다.
스택은 다음과 같습니다
+ (void)performInvocation:(NSInvocation *)invocation onTarget:(id *)target releasingObject:(id)objectToRelease
{
if (*target && [*target respondsToSelector:[invocation selector]]) {
[invocation invokeWithTarget:*target];
}
CFRelease(invocation);
if (objectToRelease) {
CFRelease(objectToRelease);
}
}
을 나는 그것이 invokeWithTarget 호출에 발생하는 믿습니다
ASIHTTPRequest performInvocation:onTarget:releasingObject: 1877
ASIHTTPRequest performSelector:onTarget:withObject:amount:callerToRetain: 1870
ASIHTTPRequest updateProgressIndicator:withProgress:ofTotal: 1903
ASINetworkQueue request:didReceiveBytes: 240
ASIHTTPRequest performInvocation:onTarget:releasingObject: 1877
이것은 충돌이 발생하는 방법입니다.
이것은 거의 발생하지 않지만 대규모 배포에서는 많은 일이 발생합니다. 주변 검색은
제가 추가로 모호한 참조가 발견
[cbInvocation retainArguments];
performSelector : ... [cbInvocation performSelectorOnMainThread : ...] 호출 바로 전에 호출하십시오. 그러나 그것은 거의 권위있는 것처럼 보이지 않았습니다. 그리고 나는 그러한 변화를 만들거나 신뢰할 수있을만큼 충분히 진행되고 있다고 확신하지 못합니다. 문제를 로컬에서 재현 할 수는 없지만이 스택 추적을 사용하여 많은 수의 충돌 보고서를 필드에서 가져옵니다.
iOS 코드에서이 방법을 사용합니다.
누구나 이것이 어떤지 알 수 있습니까?