测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2017年3月 |
由 Igor Kovryzhkin 维护。
依赖 | |
Mantle | ~> 2.0 |
AFNetworking | ~> 2.2 |
假期是一个用于Objective-C模型的拖放式REST解决方案。它是建立在AFNetworking和Mantle之上的。
我们将尝试使用Xively来使用假期。Xively是一个用于托管您的物联网项目的服务。它为上传和从各种传感器读取数据提供了一个便捷的RESTfull Web服务。
首先,我们创建一个VCObject子类。
Xively使用“Feed”来表示单个项目,“Datastream”来表示传感器数据流,“Datapoint”来表示单个传感器记录。
这是对象在JSON中表示,以及在应用中的表示。
Feed JSON
{
"id": 121601,
"title": "Demo",
"private": "false",
"feed": "https://api.xively.com/v2/feeds/121601.json",
"status": "frozen",
"updated": "2013-04-23T03:25:48.686462Z",
"created": "2013-03-29T15:50:43.398788Z",
"creator": "https://xively.com/users/calumbarnes",
"version": "1.0.0",
"datastreams": [
{
"id": "example",
"current_value": "333",
"at": "2013-04-23T01:10:02.986063Z",
"max_value": "333.0",
"min_value": "333.0"},
{
"id": "key",
"current_value": "value",
"at": "2013-04-23T00:40:34.032979Z"},
{
"id": "temp"
}],
"location": {
"domain": "physical"
}
}
在VCFeed.h文件中
#import "Vacation.h"
#import <Foundation/Foundation.h>
@interface VCFeed : VCStateTransferObject
@property (nonatomic, strong) NSString * title;
@property (nonatomic, assign) BOOL private;
@property (nonatomic, strong) NSString * status;
@property (nonatomic, strong) NSString * version;
@property (nonatomic, strong) NSString * creator;
@property (nonatomic, strong) NSArray * tags;
@property (nonatomic, strong) NSString * feed_description;
@property (nonatomic, strong) NSArray * datastreams;
@end
以及.m文件中
+ (NSDictionary *)mappingDictionary {
return @{@"feed_description" : @"description"};
}
- (NSString *)endpointURL {
return @"/v2/feeds";
}
+ (NSValueTransformer *)datastreamsJSONTransformer {
return [MTLJSONAdapter arrayTransformerWithModelClass:VCDataStream.class];
}
+ (NSValueTransformer *)privateJSONTransformer {
return [NSValueTransformer mtl_valueMappingTransformerWithDictionary:@{
@"true" : @1,
@"false" : @0
}];
}
我们使用-mappingDictionary来映射不同的属性名称。如Mantle框架中所述。
任何模型都应该表示一个-endpointURL方法,基本上是一个端点URL。
-...JSONTransformer方法提供了一个自定义的映射行为。例如数组、VCObjectSubclasses dates BOOL(如在-privateJSONTransformer中所示),等等。有关此主题的更多信息,请参阅Mantle框架。
就是这样。VCObject将使用其力量向任何VCObject添加GET、POST、PUT和DELETE方法。它还将映射所有属性,包括嵌套属性。此外,它将上传所有提供的属性。
假期通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod "Vacation"
Igor Kovryzhkin,[email protected]
假期可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。