MOClickConfingData.m 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. //
  2. // MOClickConfingData.m
  3. //
  4. // Created by SuperCabbage on 2024/4/30
  5. // Copyright (c) 2024 __MyCompanyName__. All rights reserved.
  6. //
  7. #import "MOClickConfingData.h"
  8. NSString *const kMOClickConfingDataClickMax = @"clickMax";
  9. NSString *const kMOClickConfingDataUnbindDiamond = @"unbindDiamond";
  10. NSString *const kMOClickConfingDataDiamondMax = @"diamondMax";
  11. NSString *const kMOClickConfingDataMaxDiamond = @"maxDiamond";
  12. NSString *const kMOClickConfingDataDiamondMin = @"diamondMin";
  13. NSString *const kMOClickConfingDataDiamondSeed = @"diamondSeed";
  14. NSString *const kMOClickConfingDataDiamond = @"diamond";
  15. NSString *const kMOClickConfingDataClickSeed = @"clickSeed";
  16. NSString *const kMOClickConfingDataClickMin = @"clickMin";
  17. @interface MOClickConfingData ()
  18. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
  19. @end
  20. @implementation MOClickConfingData
  21. @synthesize clickMax = _clickMax;
  22. @synthesize unbindDiamond = _unbindDiamond;
  23. @synthesize diamondMax = _diamondMax;
  24. @synthesize maxDiamond = _maxDiamond;
  25. @synthesize diamondMin = _diamondMin;
  26. @synthesize diamondSeed = _diamondSeed;
  27. @synthesize diamond = _diamond;
  28. @synthesize clickSeed = _clickSeed;
  29. @synthesize clickMin = _clickMin;
  30. + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict {
  31. return [[self alloc] initWithDictionary:dict];
  32. }
  33. - (instancetype)initWithDictionary:(NSDictionary *)dict {
  34. self = [super init];
  35. // This check serves to make sure that a non-NSDictionary object
  36. // passed into the model class doesn't break the parsing.
  37. if (self && [dict isKindOfClass:[NSDictionary class]]) {
  38. self.clickMax = [[self objectOrNilForKey:kMOClickConfingDataClickMax fromDictionary:dict] doubleValue];
  39. self.unbindDiamond = [[self objectOrNilForKey:kMOClickConfingDataUnbindDiamond fromDictionary:dict] doubleValue];
  40. self.diamondMax = [[self objectOrNilForKey:kMOClickConfingDataDiamondMax fromDictionary:dict] doubleValue];
  41. self.maxDiamond = [[self objectOrNilForKey:kMOClickConfingDataMaxDiamond fromDictionary:dict] doubleValue];
  42. self.diamondMin = [[self objectOrNilForKey:kMOClickConfingDataDiamondMin fromDictionary:dict] doubleValue];
  43. self.diamondSeed = [[self objectOrNilForKey:kMOClickConfingDataDiamondSeed fromDictionary:dict] longLongValue];
  44. self.diamond = [[self objectOrNilForKey:kMOClickConfingDataDiamond fromDictionary:dict] doubleValue];
  45. self.clickSeed = [[self objectOrNilForKey:kMOClickConfingDataClickSeed fromDictionary:dict] longLongValue];
  46. self.clickMin = [[self objectOrNilForKey:kMOClickConfingDataClickMin fromDictionary:dict] doubleValue];
  47. }
  48. return self;
  49. }
  50. - (NSDictionary *)dictionaryRepresentation {
  51. NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
  52. [mutableDict setValue:[NSNumber numberWithDouble:self.clickMax] forKey:kMOClickConfingDataClickMax];
  53. [mutableDict setValue:[NSNumber numberWithDouble:self.unbindDiamond] forKey:kMOClickConfingDataUnbindDiamond];
  54. [mutableDict setValue:[NSNumber numberWithDouble:self.diamondMax] forKey:kMOClickConfingDataDiamondMax];
  55. [mutableDict setValue:[NSNumber numberWithDouble:self.maxDiamond] forKey:kMOClickConfingDataMaxDiamond];
  56. [mutableDict setValue:[NSNumber numberWithDouble:self.diamondMin] forKey:kMOClickConfingDataDiamondMin];
  57. [mutableDict setValue:[NSNumber numberWithLongLong:self.diamondSeed] forKey:kMOClickConfingDataDiamondSeed];
  58. [mutableDict setValue:[NSNumber numberWithDouble:self.diamond] forKey:kMOClickConfingDataDiamond];
  59. [mutableDict setValue:[NSNumber numberWithLongLong:self.clickSeed] forKey:kMOClickConfingDataClickSeed];
  60. [mutableDict setValue:[NSNumber numberWithDouble:self.clickMin] forKey:kMOClickConfingDataClickMin];
  61. return [NSDictionary dictionaryWithDictionary:mutableDict];
  62. }
  63. - (NSString *)description {
  64. return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
  65. }
  66. #pragma mark - Helper Method
  67. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict {
  68. id object = [dict objectForKey:aKey];
  69. return [object isEqual:[NSNull null]] ? nil : object;
  70. }
  71. #pragma mark - NSCoding Methods
  72. - (id)initWithCoder:(NSCoder *)aDecoder {
  73. self = [super init];
  74. self.clickMax = [aDecoder decodeDoubleForKey:kMOClickConfingDataClickMax];
  75. self.unbindDiamond = [aDecoder decodeDoubleForKey:kMOClickConfingDataUnbindDiamond];
  76. self.diamondMax = [aDecoder decodeDoubleForKey:kMOClickConfingDataDiamondMax];
  77. self.maxDiamond = [aDecoder decodeDoubleForKey:kMOClickConfingDataMaxDiamond];
  78. self.diamondMin = [aDecoder decodeDoubleForKey:kMOClickConfingDataDiamondMin];
  79. self.diamondSeed = [aDecoder decodeInt64ForKey:kMOClickConfingDataDiamondSeed];
  80. self.diamond = [aDecoder decodeDoubleForKey:kMOClickConfingDataDiamond];
  81. self.clickSeed = [aDecoder decodeInt64ForKey:kMOClickConfingDataClickSeed];
  82. self.clickMin = [aDecoder decodeDoubleForKey:kMOClickConfingDataClickMin];
  83. return self;
  84. }
  85. - (void)encodeWithCoder:(NSCoder *)aCoder
  86. {
  87. [aCoder encodeDouble:_clickMax forKey:kMOClickConfingDataClickMax];
  88. [aCoder encodeDouble:_unbindDiamond forKey:kMOClickConfingDataUnbindDiamond];
  89. [aCoder encodeDouble:_diamondMax forKey:kMOClickConfingDataDiamondMax];
  90. [aCoder encodeDouble:_maxDiamond forKey:kMOClickConfingDataMaxDiamond];
  91. [aCoder encodeDouble:_diamondMin forKey:kMOClickConfingDataDiamondMin];
  92. [aCoder encodeInt64:_diamondSeed forKey:kMOClickConfingDataDiamondSeed];
  93. [aCoder encodeDouble:_diamond forKey:kMOClickConfingDataDiamond];
  94. [aCoder encodeInt64:_clickSeed forKey:kMOClickConfingDataClickSeed];
  95. [aCoder encodeDouble:_clickMin forKey:kMOClickConfingDataClickMin];
  96. }
  97. - (id)copyWithZone:(NSZone *)zone {
  98. MOClickConfingData *copy = [[MOClickConfingData alloc] init];
  99. if (copy) {
  100. copy.clickMax = self.clickMax;
  101. copy.unbindDiamond = self.unbindDiamond;
  102. copy.diamondMax = self.diamondMax;
  103. copy.maxDiamond = self.maxDiamond;
  104. copy.diamondMin = self.diamondMin;
  105. copy.diamondSeed = self.diamondSeed;
  106. copy.diamond = self.diamond;
  107. copy.clickSeed = self.clickSeed;
  108. copy.clickMin = self.clickMin;
  109. }
  110. return copy;
  111. }
  112. @end