RestKit - 对象映射功能无法找到
问题描述:
我天真地想跟着guidelines与RestKit 0.20RestKit - 对象映射功能无法找到
#import <RestKit/RestKit.h>
...
RKObjectMapping *mymap =
[RKObjectMapping mappingForClass: NSClassFromString(@"MY_CLASS")];
[mymap mapAttributes:@"field1", @"field2", nil];
但
为“RKObjectMapping无可见@interface映射我CoreData类之一'声明选择器'mapAttribute'
如果我输入[mymap map
,我只能看到这两个函数在co mpletion list
id mappingForDestinationKeyPath:(NSString *)
id mappingForSourceKeyPath:(NSString *)
我在做什么错?
的另一个例子,当我尝试使用共享RKObjectManager
[[RKObjectManager sharedManager].mappingProvider setMapping:map forKeyPath:@"/"];
它找不到成员mappingProvider
答
我认为这是与Wiki页面,问题在RKObjectMapping
文档中找不到(http://restkit.org/api/master/Classes/RKObjectMapping.html)。我认为维基页面已经过时了,用这个来代替:https://github.com/RestKit/RestKit/wiki/Object-Mapping
您应该使用addAttributeMappingsFromDictionary方法代替:
[mymapp addAttributeMappingsFromDictionary:@{@"field1" : @"field1"}];
而且mappingProvider是从前期0.20休息套件,并且已被替换响应描述符(物体,其被用于确定一种用于响应使用的映射)
RKResponseDescriptor *descriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping pathPattern:nil keyPath:@"key_path" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[[RKObjectManager sharedManager] addResponseDescriptor:descriptor];
答
使用映射是这样的:
RKManagedObjectMapping * mymap = [RKManagedObjectMapping mappingForClass:[MY_CLASS class] inManagedObjectStore:self.objectStore];
mymap.setDefaultValueForMissingAttributes = YES;
mymap.primaryKeyAttribute = @"MY_CLASS_ID";
mymap.rootKeyPath = @"ROOT_PATH_OF_SERVICE";
[mymap mapKeyPathsToAttributes:
@"WEB_SERVICE_ATTRIBUTE1", @"DATA_MODAL_ATTRIBUTE1",
@"WEB_SERVICE_ATTRIBUTE2", @"DATA_MODAL_ATTRIBUTE2",
@"WEB_SERVICE_ATTRIBUTE3", @"DATA_MODAL_ATTRIBUTE3",
nil];
很好,谢谢! –