Kipu 0.4.2

Kipu 0.4.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年2月

Elvis Nuñez维护。



 
依赖项
DATAStack>= 0
NSManagedObject-HYPPropertyMapper>= 0
NSManagedObject-ANDYMapChanges>= 0
NSDictionary-ANDYSafeValue>= 0
 

Kipu 0.4.2

quipu [kee-poo, kwip-oo]:也称作话结,是历史上一直在南美安第斯地区使用的记录设备。它也是一个用于收集数据和记录的系统,包括监控税收义务、正确收集人口普查记录、日历信息以及军事组织。

Kipu 使您的日常任务,即解析 JSON 响应并将其转换为 Core Data,变得更加简单。它使用约定优于配置的范式来简化您的流程。

  • 在安全的后台线程中处理操作
  • 线程安全的保存,我们处理在正确线程中检索和存储对象
  • 差异比较,已更新、已插入和已删除的对象(这些将自动为您清除)
  • 自动映射关系(一对一、一对多和多对多)
  • 智能更新,只有在服务器值不同时才更新您的 NSManagedObject(当使用 NSFetchedResultsController 代理时很有用)
  • 唯一化,Core Data 根据 objectID 进行,我们使用您的远程键(如 id)进行此操作

界面

+ (void)processChanges:(NSArray *)changes
       usingEntityName:(NSString *)entityName
             dataStack:(DATAStack *)dataStack
            completion:(void (^)(NSError *error))completion
  • changes:JSON 响应
  • entityName:Core Data 的模型实体名称(如 User、Note、Task)
  • dataStack:您的 DATAStack

实际案例

模型

Model

JSON

[
  {
    "id": 6,
    "name": "Shawn Merrill",
    "email": "[email protected]",
    "created_at": "2014-02-14T04:30:10+00:00",
    "updated_at": "2014-02-17T10:01:12+00:00",
    "notes": [
      {
        "id": 0,
        "text": "Shawn Merril's diary, episode 1",
        "created_at": "2014-03-11T19:11:00+00:00",
        "updated_at": "2014-04-18T22:01:00+00:00"
      }
    ]
  }
]

Kipu

[Kipu processChanges:JSON
     usingEntityName:@"User"
           dataStack:dataStack
          completion:^{
              // Objects saved in Core Data, do something
           }];

(您还可以在此查看其他示例)。

盈利!

需求

iOS 7 或更高版本DATAStack Core Data 栈

组件

Kipu 的实现离不开以下 完全测试 的组件的帮助

  • DATAStack:Core Data 栈和线程安全保存

  • NSManagedObject-ANDYMapChanges:帮助您清除已删除的对象;内部我们用来区分插入、更新和删除。此外,它还用于唯一化;Core Data 根据对象ID进行唯一化,ANDYMapChanges 使用您的远程键(如 id)进行此操作

  • NSManagedObject-HYPPropertyMapper:将JSON字段映射到其Core Data对应字段,它的大部分工作是通过“约定优于配置”范式完成的。

入门

安装

Kipu 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:

pod 'Kipu', '~> 0.4'

DATAStack

将您的 Core Data 栈替换为 DATAStack 实例

- (void)applicationWillTerminate:(UIApplication *)application
{
    [self.dataStack persistWithCompletion:nil];
}

NSManagedObject-HYPPropertyMapper

您的 Core Data 模型应与后端实体匹配,您的类可以有不同的名称。您的字段应与它们的 JSON 对应字段匹配。例如,first_name 映射到 firstNameaddressaddress

此规则有两个例外

  • id 应与 remoteID 匹配
  • created_atupdated_at 应与 createdDateupdatedDate 匹配

网络

您可以使用任何网络库或 NSURLConnection。

最后

您已准备就绪,有关如何使用 Kipu 的示例项目,请查看 使用 App.net 的示例项目

作者

Elvis Nuñez,[email protected]

许可证

Kipu 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。