Maris 2.0.0

Maris 2.0.0

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最新发布2015年12月

Scott Petit 维护。



 
依赖项
Mantle~> 2.0.0
AFNetworking/NSURLSession~> 3.0.0
 

Maris 2.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 反序列化到模型对象中。就这么简单。