【发布时间】: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