Where's the best place to put object mappings in RestKit

前端 未结 3 1429
栀梦
栀梦 2021-02-04 16:12

I\'m using RestKit for a project and i noticed that there is no longer a method in the class that you can control all mappings in (elementToPropertyMappings), i therefore wonder

3条回答
  •  没有蜡笔的小新
    2021-02-04 16:24

    I think the domain model should be the only one who should know about the mapping. Here is how I map some flickr json:

    I call the mappings when you need them (Can be in AppDelegate or where ever you want)

    // Setup our object mappings
    RKObjectMapping *photoMapping = [Photo mapWithMapping:nil];
    RKObjectMapping *photosMapping = [Photos mapWithMapping:photoMapping];
    

    And this is one of my domain objects: It contains the classMethod doing the mapping.

    #import "Photos.h"
    @implementation Photos
    
    + (RKObjectMapping*)mapWithMapping: (RKObjectMapping*)aMapping
    {
        RKObjectManager *objectManager = [RKObjectManager sharedManager];
        RKManagedObjectMapping *mapping = [RKManagedObjectMapping mappingForClass:[self class] inManagedObjectStore:objectManager.objectStore];
    
        [mapping mapKeyPathsToAttributes:
             @"page", @"page",
             @"pages", @"pages",
             @"perpage", @"perpage",
             @"stat", @"stat",
             @"total", @"total",
         nil];
    
        if (aMapping) {
            [mapping mapRelationship:@"photo" withMapping:aMapping];
        }
    
        return mapping;
    }
    
    @end
    

提交回复
热议问题