3

問題は、ここからエンティティをロードしようとすると、うまくいかないことです。私のパスパターンが間違っているようです。ここに私のマッピングと記述子があります:

RKEntityMapping *statsMapping = [RKEntityMapping mappingForEntityForName:@"Stat" inManagedObjectStore:managedObjectStore];

[statsMapping addAttributeMappingsFromDictionary:@{
 @"sort_id" : @"sortID",
 @"id" : @"statID",
 @"deleted" : @"deletedFlag",
 @"created_at": @"createdAt",
 @"updated_at": @"updatedAt"
 }];
statsMapping.identificationAttributes = @[ @"statID" ];
[statsMapping addAttributeMappingsFromArray:@[ @"title"]];


RKEntityMapping *featuresMapping = [RKEntityMapping mappingForEntityForName:@"Feature" inManagedObjectStore:managedObjectStore];

[featuresMapping addAttributeMappingsFromDictionary:@{
 @"sort_id" : @"sortID",
 @"id" : @"featureID",
 @"deleted" : @"deletedFlag",
 @"created_at": @"createdAt",
 @"updated_at": @"updatedAt",
 }];
featuresMapping.identificationAttributes = @[ @"featureID" ];
[featuresMapping addAttributeMappingsFromArray:@[ @"title", @"value"]];
[statsMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"features" toKeyPath:@"features" withMapping:featuresMapping]];

RKResponseDescriptor *statsDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:statsMapping
                                                                                  pathPattern: @"/api/cars/:carID/features.json"
                                                                                      keyPath:nil
                                                                                  statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptorsFromArray:@[newsDescriptor, catalogDescriptor, statsDescriptor]];

したがって、pathPattern:nil を使用すると機能しますが、URL によって応答が返されない場合は、応答に別の応答記述子を配置しようとし、ランダムなデータを提供します:)

問題は、パターンの真ん中に車の ID がある場合、どのように申告すればよいかということです。

ありがとうございました!

Edit1:これは私が要求する方法です:

    - (void)getStats:(NSNumber *)carID
    {
    [[RKObjectManager sharedManager] getObjectsAtPath:[NSString stringWithFormat:@"api/cars/%@/features.json", carID]
                                           parameters:@{@"auth_token" : [Constants authToken]}
                                              success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                                                  RKLogInfo(@"Load complete: Stats loaded");
                                              }
                                              failure:^(RKObjectRequestOperation *operation, NSError *error) {
                                                  RKLogError(@"Load failed with error: %@", error);
                                                  [self showError:error withDelay:3];
                                              }];
}
4

1 に答える 1