2012-05-13 1 views
0

기존의 loadobjectsatresourcepath : delegate : 메소드를 사용하여 restkit을 시작하고 객체를로드 할 수있는 것처럼 보입니다. 그러나^{} 블록을 소개하면 restkit이 매번 충돌합니다. 0.10.0으로 업그레이드 한 후 RestKit이 충돌 함

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/api/v1/places" delegate:self block:^(RKObjectLoader* loader) { 
    loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[Place class]]; 
}]; 

나는이 로그에 얻을 :이 문제를 해결하는 방법에 대한

2012-05-12 19:07:32.266 App - [RKObjectManagerloadObjectsAtResourcePath:delegate:block:]: unrecognized selector sent to instance 0x3aa2e0 
2012-05-12 19:07:32.268 App - *** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[RKObjectManager loadObjectsAtResourcePath:delegate:block:]: unrecognized selector sent to instance 0x3aa2e0' 

어떤 생각? 감사!

답변

1

예외는 정확히 무엇이 문제인지 알려줍니다. RKObjectManagerloadObjectsAtResourcePath:delegate:block:에 응답하지 않습니다. API 문서를 한눈에 보면 the original method이 0.10.0에 더 이상 존재하지 않으며 loadObjectsAtResourcePath:usingBlock:으로 대체 된 것 같습니다.

당신은 새로운 방법을 사용하여 예외를 방지 할 수 있어야한다 :

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/api/v1/places" usingBlock:^(RKObjectLoader* loader) { 
    loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[Place class]]; 
}]; 
+2

감사합니다! 그게 내가 의심했던 것. 이것은 나에게 너무 혼란 스러웠다. 그리고 Xcode가 오래된 Restkit 라이브러리와 연결되어 있고 코드 완성이 올바로 작동하지 않는다는 것을 알게되었다. 파생 된 데이터 내용을 삭제하고 다시 작성하면 모든 것이 올바르게 작동합니다. – chourobin