测试已测试 | ✓ |
语言语言 | Obj-CObjective C |
许可 | MIT |
发布最新发布 | 2015年12月 |
由 Scott Petit 维护。
依赖项 | |
Mantle | ~> 2.0.0 |
AFNetworking/NSURLSession | ~> 3.0.0 |
AFNetworking 和 Mantle 之间的粘合剂
Maris 是 AFNetworking 和 Mantle 之间的粘合剂。有了 Maris,您再也不必编写另一个 AFNetworking Response Serializer。只需告诉 Maris 使用哪种 MTLModel 子类,就能得到完整构建的对象。
Maris 是在我尝试在一个项目中使用 Overcoat,但又想使用 AFNetworking 的 NSURLSession 侧功能时获得的启发。因此,Maris 支持NSURLSession 和 AFNetworking。
Maris 以 Roger Maris 的名字命名,他是一位前美国棒球运动员,凭借在 1961 年为新 York Yankees 打出 61 个本垒打(当时创下了大联盟纪录),打破了 1927 年 Babe Ruth 的单季 60 个本垒打的记录而闻名。
Maris 为 AFNetworking 类提供了两个子类。REMHTTPSessionManager 和 REMHTTPRequestOperationManager。这些提供了通用的 AFNetworking 和 Mantle 接口。Maris 提供了一种类似以下的方法,而不是使用 AFHTTPSessionManager 方法
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Maris 提供了这样的方法
REMHTTPSessionManager *manager = [REMHTTPSessionManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil modelClass:[MYObject class] keyPath:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Model object(s): %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
通过提供模型类和对象的关键路径(可以是 nil),Maris 能够将 JSON 反序列化到模型对象中。就这么简单。