JDModel 0.0.3

JDModel 0.0.3

TestsTested
LangLanguage Objective C++Objective C++
License MIT
ReleasedLast Release Sep 2016

Maintained by jidibingren.



JDModel 0.0.3

  • By
  • fanhuibo
基于 FMDB 的 Model 支持model嵌套、元素为model类型的数组、支持遵循NSCoding协议的Foundation和自定义对象

支持的属性类型:

1.所有基础类型,如:int long float double等

2.类型为JDModel子类型的属性

3.元素类型为JDModel子类型的数组的属性

4.遵循NSCoding协议的Foundation类型的属性

5.遵循NSCoding协议的自定义类型的属性

6.所有接口都支持异步

注:4、5中嵌套的子元素若为对象,则必须都支持NSCoding协议,如:NSDictionary类型的属性value及value的子对象都必须支持NSCoding协议.

安装:

pod 'JDModel'

使用示例:

1. 类型嵌套:

    @interface Depart : JDModel

    /** 部门编号 */
    @property (nonatomic, copy)     NSString                    *departNum;
    /** 部门名称 */
    @property (nonatomic, copy)     NSString                    *departName;

    @end

    @interface User : JDModel

    @property (nonatomic, copy)     Depart                      *depart;

    @end


2. model数组:

    用JDM_ARRAY_TYPE宏定义与数组元素类名相同的协议

    JDM_ARRAY_TYPE(Depart)

    @interface User : JDModel

    @property (nonatomic, copy)   NSArray<Depart>               *departsArray;

    @end

    注: 

        1. JDM_ARRAY_TYPE(Depart) 中的'Depart'必须与departsArray中元素的类名相同

        2. NSArray<Depart> 中的'Depart'为Depart,而非'Depart *'


3. 遵循 NSCoding 的 Foundation 对象:

    @interface User : JDModel

    @property (nonatomic, copy)     NSDictionary                *testDict;

    @end


4. 遵循 NSCoding 的自定义对象:

    NSCoding协议的实现不在赘述

    @interface TestOb : NSObject <NSCoding>

    /** 部门编号 */
    @property (nonatomic, copy)     NSString                    *departNum;
    /** 部门名称 */
    @property (nonatomic, copy)     NSString                    *departName;

    @end

    @interface User : JDModel

    @property (nonatomic, copy)     TestOb                      *test;

    @property (nonatomic, copy)     NSArray<TestOb*>            *test;

    @end