MOReceivingUserItems.m 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. //
  2. // MOReceivingUserItems.m
  3. //
  4. // Created by SuperCabbage on 2024/6/19
  5. // Copyright (c) 2024 __MyCompanyName__. All rights reserved.
  6. //
  7. #import "MOReceivingUserItems.h"
  8. NSString *const kMOReceivingUserItemsAmount = @"amount";
  9. NSString *const kMOReceivingUserItemsUserId = @"userId";
  10. NSString *const kMOReceivingUserItemsUserNickname = @"userNickname";
  11. NSString *const kMOReceivingUserItemsReceivedTime = @"receivedTime";
  12. NSString *const kMOReceivingUserItemsUserAvatar = @"userAvatar";
  13. NSString *const kMOReceivingUserItemsSeq = @"seq";
  14. NSString *const kMOReceivingUserItemsReceived = @"received";
  15. NSString *const kMOReceivingUserItemsLargest = @"largest";
  16. NSString *const kMOReceivingUserItemsHeaddress = @"headdress";
  17. NSString *const kMOReceivingUserItemsHeaddressAnno = @"headdressAnno";
  18. @interface MOReceivingUserItems ()
  19. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
  20. @end
  21. @implementation MOReceivingUserItems
  22. @synthesize amount = _amount;
  23. @synthesize userId = _userId;
  24. @synthesize userNickname = _userNickname;
  25. @synthesize receivedTime = _receivedTime;
  26. @synthesize userAvatar = _userAvatar;
  27. @synthesize seq = _seq;
  28. @synthesize received = _received;
  29. @synthesize largest = _largest;
  30. @synthesize headdress = _headdress;
  31. @synthesize headdressAnno = _headdressAnno;
  32. + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict {
  33. return [[self alloc] initWithDictionary:dict];
  34. }
  35. - (instancetype)initWithDictionary:(NSDictionary *)dict {
  36. self = [super init];
  37. // This check serves to make sure that a non-NSDictionary object
  38. // passed into the model class doesn't break the parsing.
  39. if (self && [dict isKindOfClass:[NSDictionary class]]) {
  40. self.amount = [[self objectOrNilForKey:kMOReceivingUserItemsAmount fromDictionary:dict] doubleValue];
  41. self.userId = [self objectOrNilForKey:kMOReceivingUserItemsUserId fromDictionary:dict];
  42. self.userNickname = [self objectOrNilForKey:kMOReceivingUserItemsUserNickname fromDictionary:dict];
  43. self.receivedTime = [[self objectOrNilForKey:kMOReceivingUserItemsReceivedTime fromDictionary:dict] doubleValue];
  44. self.userAvatar = [self objectOrNilForKey:kMOReceivingUserItemsUserAvatar fromDictionary:dict];
  45. self.seq = [[self objectOrNilForKey:kMOReceivingUserItemsSeq fromDictionary:dict] doubleValue];
  46. self.received = [[self objectOrNilForKey:kMOReceivingUserItemsReceived fromDictionary:dict] boolValue];
  47. self.largest = [[self objectOrNilForKey:kMOReceivingUserItemsLargest fromDictionary:dict] boolValue];
  48. self.headdress = [self objectOrNilForKey:kMOReceivingUserItemsHeaddress fromDictionary:dict];
  49. self.headdressAnno = [[self objectOrNilForKey:kMOReceivingUserItemsHeaddressAnno fromDictionary:dict] boolValue];
  50. }
  51. return self;
  52. }
  53. - (NSDictionary *)dictionaryRepresentation {
  54. NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
  55. [mutableDict setValue:[NSNumber numberWithDouble:self.amount] forKey:kMOReceivingUserItemsAmount];
  56. [mutableDict setValue:self.userId forKey:kMOReceivingUserItemsUserId];
  57. [mutableDict setValue:self.userNickname forKey:kMOReceivingUserItemsUserNickname];
  58. [mutableDict setValue:[NSNumber numberWithDouble:self.receivedTime] forKey:kMOReceivingUserItemsReceivedTime];
  59. [mutableDict setValue:self.userAvatar forKey:kMOReceivingUserItemsUserAvatar];
  60. [mutableDict setValue:[NSNumber numberWithDouble:self.seq] forKey:kMOReceivingUserItemsSeq];
  61. [mutableDict setValue:[NSNumber numberWithBool:self.received] forKey:kMOReceivingUserItemsReceived];
  62. [mutableDict setValue:[NSNumber numberWithBool:self.largest] forKey:kMOReceivingUserItemsLargest];
  63. [mutableDict setValue:self.headdress forKey:kMOReceivingUserItemsHeaddress];
  64. [mutableDict setValue:[NSNumber numberWithBool:self.headdressAnno] forKey:kMOReceivingUserItemsHeaddressAnno];
  65. return [NSDictionary dictionaryWithDictionary:mutableDict];
  66. }
  67. - (NSString *)description {
  68. return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
  69. }
  70. #pragma mark - Helper Method
  71. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict {
  72. id object = [dict objectForKey:aKey];
  73. return [object isEqual:[NSNull null]] ? nil : object;
  74. }
  75. #pragma mark - NSCoding Methods
  76. - (id)initWithCoder:(NSCoder *)aDecoder {
  77. self = [super init];
  78. self.amount = [aDecoder decodeDoubleForKey:kMOReceivingUserItemsAmount];
  79. self.userId = [aDecoder decodeObjectForKey:kMOReceivingUserItemsUserId];
  80. self.userNickname = [aDecoder decodeObjectForKey:kMOReceivingUserItemsUserNickname];
  81. self.receivedTime = [aDecoder decodeDoubleForKey:kMOReceivingUserItemsReceivedTime];
  82. self.userAvatar = [aDecoder decodeObjectForKey:kMOReceivingUserItemsUserAvatar];
  83. self.seq = [aDecoder decodeDoubleForKey:kMOReceivingUserItemsSeq];
  84. self.received = [aDecoder decodeBoolForKey:kMOReceivingUserItemsReceived];
  85. self.largest = [aDecoder decodeBoolForKey:kMOReceivingUserItemsLargest];
  86. self.headdress = [aDecoder decodeObjectForKey:kMOReceivingUserItemsHeaddress];
  87. self.headdressAnno = [aDecoder decodeBoolForKey:kMOReceivingUserItemsHeaddressAnno];
  88. return self;
  89. }
  90. - (void)encodeWithCoder:(NSCoder *)aCoder
  91. {
  92. [aCoder encodeDouble:_amount forKey:kMOReceivingUserItemsAmount];
  93. [aCoder encodeObject:_userId forKey:kMOReceivingUserItemsUserId];
  94. [aCoder encodeObject:_userNickname forKey:kMOReceivingUserItemsUserNickname];
  95. [aCoder encodeDouble:_receivedTime forKey:kMOReceivingUserItemsReceivedTime];
  96. [aCoder encodeObject:_userAvatar forKey:kMOReceivingUserItemsUserAvatar];
  97. [aCoder encodeDouble:_seq forKey:kMOReceivingUserItemsSeq];
  98. [aCoder encodeBool:_received forKey:kMOReceivingUserItemsReceived];
  99. [aCoder encodeBool:_largest forKey:kMOReceivingUserItemsLargest];
  100. [aCoder encodeObject:_headdress forKey:kMOReceivingUserItemsHeaddress];
  101. [aCoder encodeBool:_headdressAnno forKey:kMOReceivingUserItemsHeaddressAnno];
  102. }
  103. - (id)copyWithZone:(NSZone *)zone {
  104. MOReceivingUserItems *copy = [[MOReceivingUserItems alloc] init];
  105. if (copy) {
  106. copy.amount = self.amount;
  107. copy.userId = [self.userId copyWithZone:zone];
  108. copy.userNickname = [self.userNickname copyWithZone:zone];
  109. copy.receivedTime = self.receivedTime;
  110. copy.userAvatar = [self.userAvatar copyWithZone:zone];
  111. copy.seq = self.seq;
  112. copy.received = self.received;
  113. copy.largest = self.largest;
  114. copy.headdress = [self.headdress copyWithZone:zone];
  115. copy.headdressAnno = self.headdressAnno;
  116. }
  117. return copy;
  118. }
  119. @end