哪里是将对象映射放在RestKit中的最佳位置

Mat*_*ham 8 mapping object objective-c restkit

我正在使用RestKit进行项目,我注意到类中不再有一个方法可以控制(elementToPropertyMappings)中的所有映射,因此我想知道放置新代码的最佳位置在哪里,目前我是在我的视图控制器中执行此操作,但我将在我的代码的其他区域中使用大多数相同的映射,因此有一个更有效的地方放置它:

我指的代码是:

RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[User class]];
[userMapping mapKeyPath:@"id" toAttribute:@"identifier"];
[userMapping mapKeyPath:@"forename" toAttribute:@"forename"];
[userMapping mapKeyPath:@"surname" toAttribute:@"surname"];
[userMapping mapKeyPath:@"email" toAttribute:@"email"];
[userMapping mapKeyPath:@"twitter_username" toAttribute:@"twitterUsername"];
[userMapping mapKeyPath:@"created" toAttribute:@"created"];
[userMapping mapKeyPath:@"use_gravatar" toAttribute:@"useGravatar"];
[userMapping mapKeyPath:@"avatar_url" toAttribute:@"avatarURL"];
[userMapping mapKeyPath:@"gender" toAttribute:@"gender"];
[[RKObjectManager sharedManager].mappingProvider setMapping:userMapping forKeyPath:@"user"];
Run Code Online (Sandbox Code Playgroud)

如果这可以在User类的方法中,然后我可以调用以设置这些映射等,那将是很好的.

非常感谢

Bla*_*ers 9

有几种很好的方法来组织目前推荐的映射:

  1. 将所有映射放入应用程序委托,并在应用程序初始化时配置它们.这使它们不受控制器的影响,如果您的映射数量很少,则非常有用.
  2. 子类化RKObjectMappingProvider并在子类的init方法中构建所有映射,然后实例化并将映射提供程序实例分配给对象管理器.
  3. 使用类似'defineMappings'的方法将类别添加到RKObjectMappingProvider.然后将标头导入到您的app委托中,并在初始化RestKit后通过[mappingProvider defineMappings]调用它.

在类方法上定义映射的问题是,当你有关系时,你可以结束循环依赖,因为没有可用于存储实例的ivars.我们或许可以使用块来帮助缓解这个问题,但还没有完成这样的工作.