5
를 사용하여 JSON 직렬화 때이 클래스가 속성 전무 무시 : 두 속성은 선택 사항 널 (NULL) 부울 값을 나타냅니다RestKit
@interface MovieStatus : NSObject
@property (nonatomic, strong) NSNumber* seen;
@property (nonatomic, strong) NSNumber* watchlist;
@end
합니다. RKObjectManager
을 통해 RestKit을 사용하여이 개체를 서버로 보내고 적절한 매핑을 만들었습니다. 하지만 개체를 serialize 할 때 POST 데이터에서 속성을 건너 뛸 수 없습니다. 예를 들어
,이 코드 : 내가 좋아하는 것
{
"seen": true,
"watchlist": null
}
을 보낼 :
는RKLogConfigureByName("*", RKLogLevelTrace);
RKObjectManager* manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://www.example.com/v1"]];
manager.requestSerializationMIMEType = RKMIMETypeJSON;
RKObjectMapping* requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromArray:@[@"seen", @"watchlist"]];
RKRequestDescriptor* requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[MovieStatus class] rootKeyPath:nil method:RKRequestMethodPOST];
[manager addRequestDescriptor:requestDescriptor];
RKRoute* route = [RKRoute routeWithClass:[MovieStatus class] pathPattern:@"status" method:RKRequestMethodPOST];
[manager.router.routeSet addRoute:route];
MovieStatus* status = [[MovieStatus alloc] init];
status.seen = @(YES);
[manager postObject:status path:nil parameters:nil success:nil failure:nil];
JSON을 보내는
{
"seen": true
}
사람이 어떻게 저를 지적 할 수 나는 그것을 얻을 수 있습니까?
각 매핑에 대해 개별적으로 설정하는 대신 전역으로 설정하는 방법이 있습니까? – dirkoneill
당신은 RKObjectMapping 서브 클래스가 될 수 있습니다. – VaporwareWolf
이것은 저에게 효과적이지 않았고, 이것이 디폴트로 '아니오'로 설정되었다고 생각했습니다. http://stackoverflow.com/questions/31846262/how-do-i-ignore-empty-properties-on-posted-objects-using-restkit에 새 질문을 올렸습니다. – Tim