123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- //
- // NSObject+MJClass.h
- // MJExtensionExample
- //
- // Created by MJ Lee on 15/8/11.
- // Copyright (c) 2015年 小码哥. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- /**
- * 遍历所有类的block(父类)
- */
- typedef void (^MJClassesEnumeration)(Class c, BOOL *stop);
- /** 这个数组中的属性名才会进行字典和模型的转换 */
- typedef NSArray * (^MJAllowedPropertyNames)(void);
- /** 这个数组中的属性名才会进行归档 */
- typedef NSArray * (^MJAllowedCodingPropertyNames)(void);
- /** 这个数组中的属性名将会被忽略:不进行字典和模型的转换 */
- typedef NSArray * (^MJIgnoredPropertyNames)(void);
- /** 这个数组中的属性名将会被忽略:不进行归档 */
- typedef NSArray * (^MJIgnoredCodingPropertyNames)(void);
- /**
- * 类相关的扩展
- */
- @interface NSObject (MJClass)
- /**
- * 遍历所有的类
- */
- + (void)mj_enumerateClasses:(MJClassesEnumeration)enumeration;
- + (void)mj_enumerateAllClasses:(MJClassesEnumeration)enumeration;
- #pragma mark - 属性白名单配置
- /**
- * 这个数组中的属性名才会进行字典和模型的转换
- *
- * @param allowedPropertyNames 这个数组中的属性名才会进行字典和模型的转换
- */
- + (void)mj_setupAllowedPropertyNames:(MJAllowedPropertyNames)allowedPropertyNames;
- /**
- * 这个数组中的属性名才会进行字典和模型的转换
- */
- + (NSMutableArray *)mj_totalAllowedPropertyNames;
- #pragma mark - 属性黑名单配置
- /**
- * 这个数组中的属性名将会被忽略:不进行字典和模型的转换
- *
- * @param ignoredPropertyNames 这个数组中的属性名将会被忽略:不进行字典和模型的转换
- */
- + (void)mj_setupIgnoredPropertyNames:(MJIgnoredPropertyNames)ignoredPropertyNames;
- /**
- * 这个数组中的属性名将会被忽略:不进行字典和模型的转换
- */
- + (NSMutableArray *)mj_totalIgnoredPropertyNames;
- #pragma mark - 归档属性白名单配置
- /**
- * 这个数组中的属性名才会进行归档
- *
- * @param allowedCodingPropertyNames 这个数组中的属性名才会进行归档
- */
- + (void)mj_setupAllowedCodingPropertyNames:(MJAllowedCodingPropertyNames)allowedCodingPropertyNames;
- /**
- * 这个数组中的属性名才会进行字典和模型的转换
- */
- + (NSMutableArray *)mj_totalAllowedCodingPropertyNames;
- #pragma mark - 归档属性黑名单配置
- /**
- * 这个数组中的属性名将会被忽略:不进行归档
- *
- * @param ignoredCodingPropertyNames 这个数组中的属性名将会被忽略:不进行归档
- */
- + (void)mj_setupIgnoredCodingPropertyNames:(MJIgnoredCodingPropertyNames)ignoredCodingPropertyNames;
- /**
- * 这个数组中的属性名将会被忽略:不进行归档
- */
- + (NSMutableArray *)mj_totalIgnoredCodingPropertyNames;
- #pragma mark - 内部使用
- + (void)mj_setupBlockReturnValue:(id (^)(void))block key:(const char *)key;
- @end
|