gpt4 book ai didi

objective-c - 在 RestKit 中放置对象映射的最佳位置在哪里

转载 作者:太空狗 更新时间:2023-10-30 03:31:44 24 4
gpt4 key购买 nike

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

我指的代码是:

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"];

如果这可以在 User 类的方法中,然后我可以调用它来设置这些映射等,那就太好了。

非常感谢

最佳答案

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

  1. 将所有映射放入您的应用委托(delegate)中,并在应用初始化时配置它们。这使它们远离 Controller ,并且在您的映射数量较少时非常有用。
  2. 子类化 RKObjectMappingProvider 并在子类的 init 方法中构建所有映射,然后实例化映射提供程序实例并将其分配给对象管理器。
  3. 使用类似“defineMappings”的方法将类别添加到 RKObjectMappingProvider。然后将 header 导入您的应用委托(delegate),并在初始化 RestKit 后通过 [mappingProvider defineMappings] 调用它。

在类方法上定义映射的问题在于,当您有关系时,您可能会遇到循环依赖,因为没有可用的 ivar 来存储实例。我们也许可以用 block 来做一些事情来帮助缓解这个问题,但是还没有完成这样的工作。

关于objective-c - 在 RestKit 中放置对象映射的最佳位置在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7190721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com