1

JSON 応答から次のオブジェクトをマップしようとしましたが、コンソール出力に表示されるすべてのことから、マッピングが成功しない理由はありません。誰かがチェックして確認できるとありがたいです。

@interface RKElectionsModel : NSObject

@property (nonatomic, assign) bool isActive;
@property (nonatomic, strong) NSNumber *electionID;
@property (nonatomic, strong) NSString *title;
@property (nonatomic, strong) NSString *summary;
@property (nonatomic, strong) NSNumber *availableSeats;
@property (nonatomic, strong) NSNumber *candidatesCount;
@property (nonatomic, strong) NSNumber *withdrawnCount;
@property (nonatomic, strong) NSSet *candidates;

@end

/**
 * Election Detail Mapping: Getting all election details, we have some extra information from
 * the API call
 *
*/
RKObjectMapping *electionDetailsMapping = [RKObjectMapping mappingForClass:[RKElectionsModel class]];

// Map JSON -> entities
[electionDetailsMapping addAttributeMappingsFromDictionary:@{
     @"id": @"electionID",
     @"title": @"title",
     @"summary": @"summary",
     @"active": @"isActive",
     @"availableSeats": @"availableSeats",
     @"candidatesCount": @"candidatesCount",
     @"withdrawnCount": @"withdrawnCount"
 }];

// Register our mappings with the provider
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:electionDetailsMapping pathPattern:@"/api/elections/:electionID/all" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

ペーストビンのコンソール出力と、ここにアクセスできる JSON 応答の例

助けてくれてありがとう、ルイス

4

1 に答える 1

0

NSString を NSNumber にマップしようとしているようです。

NSObject次の検証を追加して、マッピングの開始時にサーバーから受け取った文字列を NSNumber に変換してみてください。

- (BOOL)validateAvailableSeats:(id *)ioValue error:(NSError **)outError {
       // Force the value to be a NSNumber
       *ioValue = [NSNumber numberWithDouble:[(NSString*)value doubleValue] ]
       return YES;
}

RestKit Wikiでは、値の変換をさらに見つけることができます。

于 2013-03-27T10:59:01.853 に答える