1

私はrestkit 0.20を使用しています.GETから返されたオブジェクトはCategoryではなくNSDictionaryですか?

これは私のモデルです

 

#import <Foundation/Foundation.h>

@interface Category : NSObject 

@property (nonatomic, copy) NSString* identifier;
@property (nonatomic, copy) NSString* description;
@property (nonatomic, copy) NSString* name;

@end

json

 

    [
      {
        "category": {
          "_id": "50fc579d81d79d4db0000001",
          "name": "Category 0"
        }
      },
      {
        "category": {
          "_id": "50fc579d81d79d4db0000006",
          "name": "Category 0"
        }
      } 
    ]

マッピング

RKObjectMapping *categoryMapping = [RKObjectMapping requestMapping];
[categoryMapping addAttributeMappingsFromDictionary:@{@"category._id": @"identifier", @"category.name": @"name"}];
[objectManager addRequestDescriptor: [RKRequestDescriptor requestDescriptorWithMapping:categoryMapping objectClass:[Category class] rootKeyPath:nil]];
RKResponseDescriptor *categoryResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:categoryMapping pathPattern:@"/categories" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptor:categoryResponseDescriptor];

[RKObjectManager.sharedManager getObjectsAtPath:@"/categories" を呼び出すと、配列が返されます :) しかし、オブジェクトのタイプはカテゴリではなく、NSDictionary です。

    NSLog(@"%@",[猫クラス]);
    2013-01-26 12:01:17.247 app[18943:c07] __NSDictionaryM

dat.name を呼び出すと、アプリがクラッシュします

4

2 に答える 2

0

おっと



    RKObjectMapping* catMapping = [RKObjectMapping requestMapping];

私は今使っています



    RKObjectMapping* catMapping = [RKObjectMapping mappingForClass:[Category class]];

私は再び転がっています:)

于 2013-01-26T14:17:47.277 に答える
0

はい、返されるオブジェクトは常に辞書です。それらをクラスにマップする必要があります。

Category* c= [Category new];
c.identifier= dict[@"_id"];
c.name= dict[@"name"];

すべての辞書は、取得した配列から取得されます。

于 2013-01-26T11:42:19.960 に答える