Restkit无法为keyPath添加映射

时间:2016-06-20 18:49:16

标签: ios objective-c restkit

我的几个对象都有字段“id”,RestKit不允许我将它们映射到同一个名称。我怎样才能解决这个问题?对于这两个对象,我有一个对应的服务器端对象,需要填写MyId属性。我不想将属性重命名为解决方案。

以下是我可能使用的两个类的示例:

class DTree(dict):
    def __missing__(self, key):
        value = self[key] = type(self)()
        return value

try:    import cPickle as pickle
except: import pickle

#Create dtree object:
hapPkl = DTree()

#Create Pickle file
f = open("hapP.pkl", "wb")
pickle.dump(hapPkl, f)
f.close()

以下是我将在这两个对象上运行的代码示例:

@interface MyObject : NSObject
@property NSNumber *id;
@end

@interface AnotherObject : NSObject
@property NSNumber *id;
@end

以下是我会得到的错误:

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法为keyPath MyId添加映射,一个已经存在...'

1 个答案:

答案 0 :(得分:1)

问题只是你在呼唤:

[userMapping addAttributeMappingsFromDictionary:objMapping];

使用相同参数多次且不允许这样做。

在您的问题的具体情况下,您不需要第二行。在一般情况下,您在映射中会有一些其他差异,因此您需要创建一个新映射(然后将映射字典添加到其中):

[RKObjectMapping requestMapping]