【问题标题】:Recursive mapping using RKObjectMapping?使用 RKObjectMapping 进行递归映射?
【发布时间】:2016-02-10 19:01:41
【问题描述】:

如何使用 RKObjectMapping 将包含另一个自定义对象(比如 objectType2)的一些属性和数组的自定义对象(比如 objectType1)转换为字典。

基本上我需要在 NSUserDeafults 中保存一个自定义对象。

- (NSDictionary *)dictionaryFromMaping {

RKObjectMapping * itemMapping = [RUserObject mapping];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:itemMapping.inverseMapping objectClass:[self class] rootKeyPath:nil method:RKRequestMethodPOST];
NSDictionary *dictionary = [RKObjectParameterization parametersWithObject:self requestDescriptor:requestDescriptor error:nil];

[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    if (obj == [NSNull null]) {
        [dictionary setValue:nil forKey:key];
    }
}];


return dictionary;
}

考虑这个例子

@interface ObjectType1 : NSObject

@property (nonatomic) NSString * name;
@property (nonatomic) NSArray * objectType2Array; // array of ObjectType2

@interface ObjectType2 : NSObject

@property (nonatomic) NSString * address;

现在我想为 ObjectType1 类型的对象获取 NSDictionary

【问题讨论】:

  • @Wain 你能帮忙吗?
  • 什么是if !self return nil
  • 糟糕!那是个错误。已将其删除。
  • 所以我在您的映射中看不到任何关于关系/嵌套的内容。用户默认值与发布和请求描述符有什么关系?
  • 我已经编辑了这个问题。我想要的只是使用 RKobject 映射在 NSUserDefaluts 中保存一个自定义对象。如果还有其他选择,请提出建议。 @Wain

标签: ios rkobjectmapping


【解决方案1】:

据我所知,您没有发出任何网络请求,因此您不需要请求描述符。您只是想在本地将模型对象图转换为 JSON,因此您应该使用 RKMapperOperation

【讨论】:

  • 你能推荐一些示例代码来使用 RestKit 在 NSUserDefaults 中保存自定义对象吗?
猜你喜欢
  • 2023-03-22
  • 2014-03-19
  • 2011-06-12
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
相关资源
最近更新 更多