MantleArrayExtension
MantleArrayExtension使用Mantle支持模型对象与用分隔符定义的字符串之间的互转。
概览
Mantle只支持Json和Dictionary。
这是一个将数组和模型与Mantle之间进行转换的库。
- 支持以下功能
- 使用指定的字符分割字符串并转换为模型
- 在数组和模型之间进行转换
- 可定制的转换器
什么是Mantle?
Mantle为Cocoa和Cocoa Touch提供的模型框架
安装
MantleArrayExtension可以使用CocoaPods获取。CocoaPods安装方法:只需在Podfile中添加以下行
pod 'MantleArrayExtension'
如何使用MantleArrayExtension的函数
模型与字符串(或数组)之间的转换
// String to Model
id<MAESerializing> model = [MAEArrayAdapter modelOfClass:model.class
fromString:@"2017-01-29, 'Alice Brown', 1, 2, 3"
error:&error];
// Model to String
NSString* string = [MAEArrayAdapter stringFromModel:model
error:&error];
模型定义
模型必须继承MTLModel并符合MAEArraySerializing。
#pragma mark - MAEArraySerializing
+ (NSArray* _Nonnull)formatByPropertyKey
{
return @[ @"date", MAESingleQuoted(@"name"), MAEVariadic(@"scores") ];
}
+ (unichar)separator
{
return ',';
}
+ (BOOL)ignoreEdgeBlank
{
return YES;
}
格式类型
@"propetyName"
- 双引号字符串,单引号字符串或枚举字符串
MAEQuoted(@"propertyName")
- 双引号字符串
MAESingleQuoted(@"propertyName")
- 单引号字符串
MAEOptional(@"propertyName")
- 可选
MAEVariadic(@"propertyName")
- 从当前位置开始作为一个数组分组。
MAERaw(@"rawString")
,MAERawEither(@[@"value1", @"value2"])
- 字符串期望指定字符串之一
MAERawEither(@[@"value1", @"value2"]).withProperty(@"propertyName")
MAERaw
或MAERawEither
与属性关联。
转换器
你可以为MAEArraySerializing对象使用序列化器。
MAEArrayAdapter # stringTransformerWithArrayModelClass
MAEArrayAdapter # variadicTransformerWithArrayModelClass
对于MAEArraySerializing属性,默认会使用它,因此不需要指定。
其他信息
贡献
欢迎Pull request =D