MJExtensionConst.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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(error, msg) \
  8. if (error) *error = [NSError errorWithDomain:msg code:250 userInfo:nil];
  9. /**
  10. * 断言
  11. * @param condition 条件
  12. * @param returnValue 返回值
  13. */
  14. #define MJExtensionAssertError(condition, returnValue, error, msg) \
  15. if ((condition) == NO) { \
  16. MJExtensionBuildError(error, msg); \
  17. return returnValue;\
  18. }
  19. #define MJExtensionAssert2(condition, returnValue) \
  20. if ((condition) == NO) return returnValue;
  21. /**
  22. * 断言
  23. * @param condition 条件
  24. */
  25. #define MJExtensionAssert(condition) MJExtensionAssert2(condition, )
  26. /**
  27. * 断言
  28. * @param param 参数
  29. * @param returnValue 返回值
  30. */
  31. #define MJExtensionAssertParamNotNil2(param, returnValue) \
  32. MJExtensionAssert2((param) != nil, returnValue)
  33. /**
  34. * 断言
  35. * @param param 参数
  36. */
  37. #define MJExtensionAssertParamNotNil(param) MJExtensionAssertParamNotNil2(param, )
  38. /**
  39. * 打印所有的属性
  40. */
  41. #define MJLogAllIvars \
  42. -(NSString *)description \
  43. { \
  44. return [self keyValues].description; \
  45. }
  46. #define MJExtensionLogAllProperties MJLogAllIvars
  47. /**
  48. * 类型(属性类型)
  49. */
  50. extern NSString *const MJPropertyTypeInt;
  51. extern NSString *const MJPropertyTypeShort;
  52. extern NSString *const MJPropertyTypeFloat;
  53. extern NSString *const MJPropertyTypeDouble;
  54. extern NSString *const MJPropertyTypeLong;
  55. extern NSString *const MJPropertyTypeLongLong;
  56. extern NSString *const MJPropertyTypeChar;
  57. extern NSString *const MJPropertyTypeBOOL1;
  58. extern NSString *const MJPropertyTypeBOOL2;
  59. extern NSString *const MJPropertyTypePointer;
  60. extern NSString *const MJPropertyTypeIvar;
  61. extern NSString *const MJPropertyTypeMethod;
  62. extern NSString *const MJPropertyTypeBlock;
  63. extern NSString *const MJPropertyTypeClass;
  64. extern NSString *const MJPropertyTypeSEL;
  65. extern NSString *const MJPropertyTypeId;
  66. #endif