Ios RestKit 0.24 | | getObjectsAtPath | |结果对象的NSString参数设置为NSNull

Ios RestKit 0.24 | | getObjectsAtPath | |结果对象的NSString参数设置为NSNull,ios,objective-c,restkit,Ios,Objective C,Restkit,当JSON中返回null时,我的对象中的NSString参数被设置为NSNull。我希望将NSString设置为零。有什么想法吗 我已尝试设置[mapping SetAssignsDefaultValueFormissingAttribute:NO]但是,即使在我实现来自的更改时,这似乎也不起作用。我真的只是在这一点上旋转我的轮子 这是我到目前为止打这个电话的所有资料 返回的JSON { val1 = "something"; val2 = "<null>"; }

当JSON中返回null时,我的对象中的NSString参数被设置为NSNull。我希望将NSString设置为零。有什么想法吗

我已尝试设置
[mapping SetAssignsDefaultValueFormissingAttribute:NO]但是,即使在我实现来自的更改时,这似乎也不起作用。我真的只是在这一点上旋转我的轮子

这是我到目前为止打这个电话的所有资料

返回的JSON

{
    val1 = "something";
    val2 = "<null>";
}
RKObjectMapping

RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[cMyClass class]];
[mapping addAttributeMappingsFromDictionary:@{@"val1":@"val1", @"val2":@"val2"}];
RKResponseDescriptor

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping method:RKRequestMethodAny pathPattern:@"GetMyClass" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
RKObjectManager

NSURL *baseURL = [NSURL URLWithString:@"http://www.domain.com/MyAPI.svc/rest"];
RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:baseURL];
[objectManager addResponseDescriptor:responseDescriptor];

objectManager.requestSerializationMIMEType = RKMIMETypeJSON;

[objectManager.HTTPClient setDefaultHeader:@"Accept" value:RKMIMETypeJSON];
[objectManager.HTTPClient setParameterEncoding:AFJSONParameterEncoding];
API调用

NSDictionary *params = ...

objectManager getObjectsAtPath:@"GetMyClass" parameters:params success:(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
    completionBlock:(mappingResult.array[0]);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
    failureBlock(error);
}];

我正在抓救命稻草,因为我自己才刚开始使用Restkit……但是,您可能认为映射可能有问题吗


cMyClass中的值似乎是ivar而不是属性。如果我没有弄错的话,除非另有说明,否则这些都是“受保护的”,所以如果调用类的实例,就不能真正访问这些。也许可以把他们搬到酒店,看看那里是否管用

您是如何实现错误修复更改的?是的。但是,
getObjectsAtPath
调用似乎并没有触及代码的这一部分。您是否用错误修复签出了版本?还是你想复制它?是否需要在代码中的其他地方进行类似的更改?当您查看拉取请求时,您可以看到该人对每个文件进行了更改,以及进行了哪些更改。此文件中只进行了一些更改,然后在测试类中进行了一些更改以测试覆盖率。好的,但是人们会犯错误,因此您是否比较了更改,如果手动更改而不是签出,请运行测试,检查是否应在其他地方进行相同的更改?-我不知道你的问题的答案,但第一个问题应该是你找到的解决方案是否适合你的情况
NSDictionary *params = ...

objectManager getObjectsAtPath:@"GetMyClass" parameters:params success:(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
    completionBlock:(mappingResult.array[0]);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
    failureBlock(error);
}];