gpt4 book ai didi

ios - RestKit 0.24 ||获取对象路径 ||结果对象的 NSString 参数设置为 NSNull

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:30 25 4
gpt4 key购买 nike

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

我尝试设置 [mapping setAssignsDefaultValueForMissingAttributes:NO]; 但即使我从 Fix 1714 实现更改,这似乎也不起作用.在这一点上,我真的只是在转动我的轮子。

这是到目前为止我进行此调用的所有信息。

返回的JSON

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

类 cMyClass

@interface cMyClass : NSObject {
NSString *val1;
NSString *val2;
}

RK对象映射

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)];

RK对象管理器

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 而不是属性。如果我没记错的话,除非另有说明,否则它们是“ protected ”,因此如果您调用该类的实例,您将无法真正访问它们。也许将它们移到属性中,看看它是否可以从那里开始工作!

关于ios - RestKit 0.24 ||获取对象路径 ||结果对象的 NSString 参数设置为 NSNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com