我的几个对象都有字段“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添加映射,一个已经存在...'
答案 0 :(得分:1)
问题只是你在呼唤:
[userMapping addAttributeMappingsFromDictionary:objMapping];
使用相同参数多次且不允许这样做。
在您的问题的具体情况下,您不需要第二行。在一般情况下,您在映射中会有一些其他差异,因此您需要创建一个新映射(然后将映射字典添加到其中):
[RKObjectMapping requestMapping]