2013-05-04 2 views
0

내가 PUT 요청과 객체의 갱신을 허용하는 API와 함께 일하고 있어요 - (/ 컬 W)의 형식은 다음과 : 즉 (API가 URL에서 참조) 연관된 객체의 속성PUT 용 RKObjectManager의 올바른 용도는 무엇입니까?

curl --request PUT -u <api_key>: <api_url> \ 
-d "attribute=newvalue" 

하는 컬에 열거 된 목록이 갱신되고 갱신 된 오브젝트가 리턴됩니다.

지도 개체와 함께 RestKit을 사용하고 있으며 모든 것이 GET으로 멋지게 작동합니다. 그러나 매핑 된 객체의 속성을 업데이트 한 후, 내가 예를 들어, 작업 RKObjectManager에 putObject 방법을 얻기 위해 사투를 벌인거야 : 나는 첫 번째 매개 변수로 넣어 무엇이든

[objectManager putObject:<someObject> 
       path:path 
       parameters:nil 
       success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {} 
       failure:^(RKObjectRequestOperation *operation, NSError *error) { 
       [self.refreshControl endRefreshing]; 
       } 
]; 

- 업데이트 된 맵 오브젝트하는 JSONified 사전, RestKit에서 "요청 데이터, 유효하지 않은 JSON을 구문 분석 할 수 없습니다"오류를 반환하는 것처럼 보입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

<someObject>은 데이터 모델의 클래스 인스턴스 여야합니다. 클래스에는 정의 된 매핑 집합이 있어야합니다.

클래스가 있다고 가정하면 Person입니다. RestKit이 다운로드 한 JSON을 Person 개체로 변환 할 수 있도록 매핑 및 응답 설명자를 정의합니다. 이제 요청 설명자를 정의하기 위해 inverseMapping을 얻어야하므로 RestKit은 업로드를 위해 serialize하는 방법을 알고 있습니다.

이렇게하면 RestKit에서 <someObject>을 가져 와서 JSON (요청 설명자)으로 serialize 한 다음 서버로 보내고 응답을 받고 해당 데이터를 업데이트 된 개체 (응답 설명자)에 다시 매핑 할 수 있습니다.

here을 확인하십시오. 사전을 사용하여 업데이트 된 속성을 보유하지만 원칙은 동일합니다. 사전을 사용하면 전체 개체 대신 부분 개체를 쉽게 업로드 할 수 있습니다.

관련 문제