2013-05-20 48 views
1

我天真地想跟着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

回答

2

我認爲這是與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]; 
+0

很好,謝謝! –

0

使用映射是這樣的:

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]; 
+0

'RKManagedObjectMapping'似乎也沒有。 –

+0

您是否在.h文件中導入RestKit #import Khawar

+0

是的,它是從我的'.h'文件導入的。 –