美文网首页
2022-07-26

2022-07-26

作者: EricLihuifeng | 来源:发表于2022-07-26 14:05 被阅读0次

    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.导入 <YYModel/YYModel.h>。

    5、注意事项

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

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

    • 导入 <YYModel/YYModel.h>。

    6、版本历史记录

    1.版本1.0.0增加XXX

    2.版本2.0.0增加XXX

    3.版本3.0.0增加XXX

    7、其他

    相关文章

      网友评论

          本文标题:2022-07-26

          本文链接:https://www.haomeiwen.com/subject/hgeoirtx.html