MJExtensionConst.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef __MJExtensionConst__H__
  2. #define __MJExtensionConst__H__
  3. #import <Foundation/Foundation.h>
  4. // 过期
  5. #define MJExtensionDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead)
  6. // 构建错误
  7. #define MJExtensionBuildError(clazz, msg) \
  8. NSError *error = [NSError errorWithDomain:msg code:250 userInfo:nil]; \
  9. [clazz setMj_error:error];
  10. // 日志输出
  11. #ifdef DEBUG
  12. #define MJExtensionLog(...) NSLog(__VA_ARGS__)
  13. #else
  14. #define MJExtensionLog(...)
  15. #endif
  16. /**
  17. * 断言
  18. * @param condition 条件
  19. * @param returnValue 返回值
  20. */
  21. #define MJExtensionAssertError(condition, returnValue, clazz, msg) \
  22. [clazz setMj_error:nil]; \
  23. if ((condition) == NO) { \
  24. MJExtensionBuildError(clazz, msg); \
  25. return returnValue;\
  26. }
  27. #define MJExtensionAssert2(condition, returnValue) \
  28. if ((condition) == NO) return returnValue;
  29. /**
  30. * 断言
  31. * @param condition 条件
  32. */
  33. #define MJExtensionAssert(condition) MJExtensionAssert2(condition, )
  34. /**
  35. * 断言
  36. * @param param 参数
  37. * @param returnValue 返回值
  38. */
  39. #define MJExtensionAssertParamNotNil2(param, returnValue) \
  40. MJExtensionAssert2((param) != nil, returnValue)
  41. /**
  42. * 断言
  43. * @param param 参数
  44. */
  45. #define MJExtensionAssertParamNotNil(param) MJExtensionAssertParamNotNil2(param, )
  46. /**
  47. * 打印所有的属性
  48. */
  49. #define MJLogAllIvars \
  50. -(NSString *)description \
  51. { \
  52. return [self mj_keyValues].description; \
  53. }
  54. #define MJExtensionLogAllProperties MJLogAllIvars
  55. /**
  56. * 类型(属性类型)
  57. */
  58. extern NSString *const MJPropertyTypeInt;
  59. extern NSString *const MJPropertyTypeShort;
  60. extern NSString *const MJPropertyTypeFloat;
  61. extern NSString *const MJPropertyTypeDouble;
  62. extern NSString *const MJPropertyTypeLong;
  63. extern NSString *const MJPropertyTypeLongLong;
  64. extern NSString *const MJPropertyTypeChar;
  65. extern NSString *const MJPropertyTypeBOOL1;
  66. extern NSString *const MJPropertyTypeBOOL2;
  67. extern NSString *const MJPropertyTypePointer;
  68. extern NSString *const MJPropertyTypeIvar;
  69. extern NSString *const MJPropertyTypeMethod;
  70. extern NSString *const MJPropertyTypeBlock;
  71. extern NSString *const MJPropertyTypeClass;
  72. extern NSString *const MJPropertyTypeSEL;
  73. extern NSString *const MJPropertyTypeId;
  74. #endif