2022-07-26

1、功能介绍

YYModel是高性能 iOS/OSX 模型转换框架。

(该项目是 YYKit 组件之一)

2、特性

  • 高性能: 模型转换性能接近手写解析代码。

  • 自动类型转换: 对象类型可以自动转换,详情见下方表格。

  • 类型安全: 转换过程中,所有的数据类型都会被检测一遍,以保证类型安全,避免崩溃问题。

  • 无侵入性: 模型无需继承自其他基类。

  • 轻量: 该框架只有 5 个文件 (包括.h文件)。

  • 文档和单元测试: 文档覆盖率100%, 代码覆盖率99.6%。

3、使用方法

简单的 Model 与 JSON 相互转换

// JSON:
{
    "uid":123456,
    "name":"Harry",
    "created":"1965-07-31T00:00:00+0000"
}

// Model:
@interface User : NSObject
@property UInt64 uid;
@property NSString *name;
@property NSDate *created;
@end
@implementation User
@end

    
// 将 JSON (NSData,NSString,NSDictionary) 转换为 Model:
User *user = [User yy_modelWithJSON:json];
    
// 将 Model 转换为 JSON 对象:
NSDictionary *json = [user yy_modelToJSONObject];

Model 属性名和 JSON 中的 Key 不相同

// JSON:
{
    "n":"Harry Pottery",
    "p": 256,
    "ext" : {
        "desc" : "A book written by J.K.Rowing."
    },
    "ID" : 100010
}

// Model:
@interface Book : NSObject
@property NSString *name;
@property NSInteger page;
@property NSString *desc;
@property NSString *bookID;
@end
@implementation Book
//返回一个 Dict,将 Model 属性名对映射到 JSON 的 Key。
+ (NSDictionary *)modelCustomPropertyMapper {
    return @{@"name" : @"n",
             @"page" : @"p",
             @"desc" : @"ext.desc",
             @"bookID" : @[@"id",@"ID",@"book_id"]};
}
@end

4、组件接入方式

CocoaPods

1.在 Podfile 中添加 pod 'YYModel'。

2.执行 pod install 或 pod update。

3.导入

5、注意事项

  • 在 Cartfile 中添加 github "ibireme/YYModel"。

  • 执行 carthage update --platform ios 并将生成的 framework 添加到你的工程。

  • 导入

6、版本历史记录

1.版本1.0.0增加XXX

2.版本2.0.0增加XXX

3.版本3.0.0增加XXX

7、其他

你可能感兴趣的:(2022-07-26)