2011-12-20 3 views
1

RKObjectManager의 delegate를 nil로 설정하려고합니다. 하지만 위임자 속성을 찾을 수 없습니다.어떻게 RKObjectManager의 델리게이트를 nil로 설정합니까?

내 요청은 다음과 같습니다

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"getData" 
    objectMapping:[[RKObjectManager sharedManager].mappingProvider 
         objectMappingForKeyPath:@"clips"] delegate:self]; 

업데이트 : 내 응용 프로그램에서 충돌이있다. "Clip"으로 이동하고 viewDidLoad에서 loadObjectsAtResourcePath를 보냅니다. 내가이 화면을 빠르게 떠날 경우 [RKResponse connection : didReceiveData :]에서 충돌이 발생합니다.

+0

RKObjectManager에는 대리인이 없습니다. 델리게이트는 RKObjectLoader로 전달되고 RKRequest로 전달됩니다. 요청이 완료되기 전에 델리게이트를 'nil'로 설정 하시겠습니까? 달성하고자하는 것에 대한 자세한 정보를 제공하십시오. 아마도 더 좋은 방법 일 것입니다. – mja

+0

예, 요청이 완료되기 전에 델리게이트를 'nil'로 설정하고 싶습니다. – Voloda2

+0

나는 그것이 가능하다고 생각하지 않는다. 당신은 무엇을 성취하려고하는지 당신이 설명 할 수 있습니까? 요청을 어떻게 든 취소 하시겠습니까? – mja

답변

7

'Delegate'개체가 dealloc 될 때 충돌이 발생합니다. 문제에 대한 간단한 해결책이 있습니다. 예를 들어 계류중인 모든 요청을 취소하십시오. viewDidUnload (또는 dealloc, 구현에 따라 다름) 메서드에서.

- (void)viewDidUnload 
{ 
    ... 
    [[[[RKObjectManager sharedManager] client] requestQueue] cancelRequestsWithDelegate:self]; 
    ... 
} 
관련 문제