RestKit 버전에 대한 거짓으로 직렬화 : 0.27.0부울 값이 참/x-www-form-urlencoded를
RestKit는 x 축에있는 NSDictionary에 저장되어있는 부울 값을 직렬화 할 수 있도록하는 방법을 방법이 있나요 www-form-urlencoded 매개 변수? 내가 NSDictionary에 값을 채운
, 그것은 인코딩 된 문자열로 전달됩니다 :product=ACCOUNT&rejected=1&type=NUMBER_OF_LOGINS_MONTH
하지만 거부 매개 변수 값으로 거짓 대신 1 또는 0/진실해야합니다.
RKAttributeMapping의 propertyValueClass와 비슷한 클래스 사양을 사용하여 기본 유형 NSNumber를 재정의하는 방법이 있습니까? 또한 NSNumber는 내부적으로 __NSCFBoolean으로 구현됩니다. 이 정보를 사용하여 값을 true/false로 serialize 할 수 있습니까? 또한
static NSString * TSNRKAFQueryStringFromParametersWithEncoding(NSDictionary *parameters, NSStringEncoding stringEncoding) {
NSMutableArray *mutablePairs = [NSMutableArray array];
for (TSNRKAFQueryStringPair *pair in TSNRKAFQueryStringPairsFromDictionary(parameters)) {
if([NSStringFromClass([pair.value class]) isEqualToString:@"__NSCFBoolean"]) {
pair.value = TSNNSCFBooleanToBooleanStringConvertor(pair.value);
}
[mutablePairs addObject:[pair URLEncodedStringValueWithEncoding:stringEncoding]];
}
return [mutablePairs componentsJoinedByString:@"&"];
}
NSString* TSNNSCFBooleanToBooleanStringConvertor(NSNumber* booleanInNSNumber) {
return [booleanInNSNumber boolValue] ? @"true" : @"false";
}
다른 방법/개체를 복사하고 이름을 기억
바디 언. 문제는 내가 NSDictionary에서보다 다른 방법으로 restkit 엔진에서 부울을 전파 할 수 없다는 것입니다. 동시에 RK 코드를 변경하고 싶지 않습니다. 내 대답을 참조하십시오 http://stackoverflow.com/a/39120726/3389683 –
'NSDictionary' 인스턴스에서는 사전의 모든 유형이 객체 여야하므로 원시 부울은 NSNumber로 표시되어야합니다. 또 다른 방법은 문자열을 사용하여 서버 측의 숫자/부울로 다시 변환하는 것입니다. – vadian