HomeMusicModel.m 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. //
  2. // HomeMusicModel.m
  3. //
  4. // Created by Steven on 2022/10/19
  5. // Copyright (c) 2022 __MyCompanyName__. All rights reserved.
  6. //
  7. #import "HomeMusicModel.h"
  8. NSString *const kHomeMusicModelMetronomeUrl = @"metronomeUrl";
  9. NSString *const kHomeMusicModelMusicSheetName = @"musicSheetName";
  10. NSString *const kHomeMusicModelAlbumNums = @"albumNums";
  11. NSString *const kHomeMusicModelId = @"id";
  12. NSString *const kHomeMusicModelXmlFileUrl = @"xmlFileUrl";
  13. NSString *const kHomeMusicModelShowFingering = @"showFingering";
  14. NSString *const kHomeMusicModelAlbumSortNumber = @"albumSortNumber";
  15. NSString *const kHomeMusicModelState = @"state";
  16. NSString *const kHomeMusicModelRemark = @"remark";
  17. NSString *const kHomeMusicModelTitleImg = @"titleImg";
  18. NSString *const kHomeMusicModelNotation = @"notation";
  19. NSString *const kHomeMusicModelMusicImg = @"musicImg";
  20. NSString *const kHomeMusicModelFavoriteCount = @"favoriteCount";
  21. NSString *const kHomeMusicModelUrl = @"url";
  22. NSString *const kHomeMusicModelMusicPrice = @"musicPrice";
  23. NSString *const kHomeMusicModelSortNumber = @"sortNumber";
  24. NSString *const kHomeMusicModelExquisiteFlag = @"exquisiteFlag";
  25. NSString *const kHomeMusicModelPlay = @"play";
  26. NSString *const kHomeMusicModelAddUserAvatar = @"addUserAvatar";
  27. NSString *const kHomeMusicModelAudioType = @"audioType";
  28. NSString *const kHomeMusicModelCanEvaluate = @"canEvaluate";
  29. NSString *const kHomeMusicModelDelFlag = @"delFlag";
  30. NSString *const kHomeMusicModelMusicTagNames = @"musicTagNames";
  31. NSString *const kHomeMusicModelSubjectNames = @"subjectNames";
  32. NSString *const kHomeMusicModelChargeType = @"chargeType";
  33. NSString *const kHomeMusicModelUpdateTime = @"updateTime";
  34. NSString *const kHomeMusicModelUpdateBy = @"updateBy";
  35. NSString *const kHomeMusicModelMusicTag = @"musicTag";
  36. NSString *const kHomeMusicModelExtConfigJson = @"extConfigJson";
  37. NSString *const kHomeMusicModelAddName = @"addName";
  38. NSString *const kHomeMusicModelPaymentType = @"paymentType";
  39. NSString *const kHomeMusicModelFavorite = @"favorite";
  40. NSString *const kHomeMusicModelAuditStatus = @"auditStatus";
  41. NSString *const kHomeMusicModelCreateBy = @"createBy";
  42. NSString *const kHomeMusicModelAccompanimentType = @"accompanimentType";
  43. NSString *const kHomeMusicModelTopFlag = @"topFlag";
  44. NSString *const kHomeMusicModelMidiUrl = @"midiUrl";
  45. NSString *const kHomeMusicModelComposer = @"composer";
  46. NSString *const kHomeMusicModelSourceType = @"sourceType";
  47. NSString *const kHomeMusicModelFirstPassAuditTime = @"firstPassAuditTime";
  48. NSString *const kHomeMusicModelMp3Type = @"mp3Type";
  49. NSString *const kHomeMusicModelHotFlag = @"hotFlag";
  50. NSString *const kHomeMusicModelCreateTime = @"createTime";
  51. NSString *const kHomeMusicModelPlaySpeed = @"playSpeed";
  52. NSString *const kHomeMusicModelHasBeat = @"hasBeat";
  53. NSString *const kHomeMusicModelAudioFileUrl = @"audioFileUrl";
  54. NSString *const kHomeMusicModelReason = @"reason";
  55. NSString *const kHomeMusicModelAuditVersion = @"auditVersion";
  56. NSString *const kHomeMusicModelMusicSubject = @"musicSubject";
  57. NSString *const kHomeMusicModelUserId = @"userId";
  58. NSString *const kHomeMusicModelSubmitAuditTime = @"submitAuditTime";
  59. NSString *const kHomeMusicModelMusicSheetType = @"musicSheetType";
  60. @interface HomeMusicModel ()
  61. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
  62. @end
  63. @implementation HomeMusicModel
  64. @synthesize metronomeUrl = _metronomeUrl;
  65. @synthesize musicSheetName = _musicSheetName;
  66. @synthesize albumNums = _albumNums;
  67. @synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
  68. @synthesize xmlFileUrl = _xmlFileUrl;
  69. @synthesize showFingering = _showFingering;
  70. @synthesize albumSortNumber = _albumSortNumber;
  71. @synthesize state = _state;
  72. @synthesize remark = _remark;
  73. @synthesize titleImg = _titleImg;
  74. @synthesize notation = _notation;
  75. @synthesize musicImg = _musicImg;
  76. @synthesize favoriteCount = _favoriteCount;
  77. @synthesize url = _url;
  78. @synthesize musicPrice = _musicPrice;
  79. @synthesize sortNumber = _sortNumber;
  80. @synthesize exquisiteFlag = _exquisiteFlag;
  81. @synthesize play = _play;
  82. @synthesize addUserAvatar = _addUserAvatar;
  83. @synthesize audioType = _audioType;
  84. @synthesize canEvaluate = _canEvaluate;
  85. @synthesize delFlag = _delFlag;
  86. @synthesize musicTagNames = _musicTagNames;
  87. @synthesize subjectNames = _subjectNames;
  88. @synthesize chargeType = _chargeType;
  89. @synthesize updateTime = _updateTime;
  90. @synthesize updateBy = _updateBy;
  91. @synthesize musicTag = _musicTag;
  92. @synthesize extConfigJson = _extConfigJson;
  93. @synthesize addName = _addName;
  94. @synthesize paymentType = _paymentType;
  95. @synthesize favorite = _favorite;
  96. @synthesize auditStatus = _auditStatus;
  97. @synthesize createBy = _createBy;
  98. @synthesize accompanimentType = _accompanimentType;
  99. @synthesize topFlag = _topFlag;
  100. @synthesize midiUrl = _midiUrl;
  101. @synthesize composer = _composer;
  102. @synthesize sourceType = _sourceType;
  103. @synthesize firstPassAuditTime = _firstPassAuditTime;
  104. @synthesize mp3Type = _mp3Type;
  105. @synthesize hotFlag = _hotFlag;
  106. @synthesize createTime = _createTime;
  107. @synthesize playSpeed = _playSpeed;
  108. @synthesize hasBeat = _hasBeat;
  109. @synthesize audioFileUrl = _audioFileUrl;
  110. @synthesize reason = _reason;
  111. @synthesize auditVersion = _auditVersion;
  112. @synthesize musicSubject = _musicSubject;
  113. @synthesize userId = _userId;
  114. @synthesize submitAuditTime = _submitAuditTime;
  115. @synthesize musicSheetType = _musicSheetType;
  116. + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
  117. {
  118. return [[self alloc] initWithDictionary:dict];
  119. }
  120. - (instancetype)initWithDictionary:(NSDictionary *)dict
  121. {
  122. self = [super init];
  123. // This check serves to make sure that a non-NSDictionary object
  124. // passed into the model class doesn't break the parsing.
  125. if(self && [dict isKindOfClass:[NSDictionary class]]) {
  126. self.metronomeUrl = [self objectOrNilForKey:kHomeMusicModelMetronomeUrl fromDictionary:dict];
  127. self.musicSheetName = [self objectOrNilForKey:kHomeMusicModelMusicSheetName fromDictionary:dict];
  128. self.albumNums = [[self objectOrNilForKey:kHomeMusicModelAlbumNums fromDictionary:dict] doubleValue];
  129. self.internalBaseClassIdentifier = [self objectOrNilForKey:kHomeMusicModelId fromDictionary:dict];
  130. self.xmlFileUrl = [self objectOrNilForKey:kHomeMusicModelXmlFileUrl fromDictionary:dict];
  131. self.showFingering = [[self objectOrNilForKey:kHomeMusicModelShowFingering fromDictionary:dict] doubleValue];
  132. self.albumSortNumber = [[self objectOrNilForKey:kHomeMusicModelAlbumSortNumber fromDictionary:dict] doubleValue];
  133. self.state = [[self objectOrNilForKey:kHomeMusicModelState fromDictionary:dict] doubleValue];
  134. self.remark = [self objectOrNilForKey:kHomeMusicModelRemark fromDictionary:dict];
  135. self.titleImg = [self objectOrNilForKey:kHomeMusicModelTitleImg fromDictionary:dict];
  136. self.notation = [[self objectOrNilForKey:kHomeMusicModelNotation fromDictionary:dict] doubleValue];
  137. self.musicImg = [self objectOrNilForKey:kHomeMusicModelMusicImg fromDictionary:dict];
  138. self.favoriteCount = [[self objectOrNilForKey:kHomeMusicModelFavoriteCount fromDictionary:dict] doubleValue];
  139. self.url = [self objectOrNilForKey:kHomeMusicModelUrl fromDictionary:dict];
  140. self.musicPrice = [[self objectOrNilForKey:kHomeMusicModelMusicPrice fromDictionary:dict] doubleValue];
  141. self.sortNumber = [[self objectOrNilForKey:kHomeMusicModelSortNumber fromDictionary:dict] doubleValue];
  142. self.exquisiteFlag = [[self objectOrNilForKey:kHomeMusicModelExquisiteFlag fromDictionary:dict] doubleValue];
  143. self.play = [self objectOrNilForKey:kHomeMusicModelPlay fromDictionary:dict];
  144. self.addUserAvatar = [self objectOrNilForKey:kHomeMusicModelAddUserAvatar fromDictionary:dict];
  145. self.audioType = [self objectOrNilForKey:kHomeMusicModelAudioType fromDictionary:dict];
  146. self.canEvaluate = [[self objectOrNilForKey:kHomeMusicModelCanEvaluate fromDictionary:dict] doubleValue];
  147. self.delFlag = [[self objectOrNilForKey:kHomeMusicModelDelFlag fromDictionary:dict] boolValue];
  148. self.musicTagNames = [self objectOrNilForKey:kHomeMusicModelMusicTagNames fromDictionary:dict];
  149. self.subjectNames = [self objectOrNilForKey:kHomeMusicModelSubjectNames fromDictionary:dict];
  150. self.chargeType = [self objectOrNilForKey:kHomeMusicModelChargeType fromDictionary:dict];
  151. self.updateTime = [self objectOrNilForKey:kHomeMusicModelUpdateTime fromDictionary:dict];
  152. self.updateBy = [[self objectOrNilForKey:kHomeMusicModelUpdateBy fromDictionary:dict] doubleValue];
  153. self.musicTag = [self objectOrNilForKey:kHomeMusicModelMusicTag fromDictionary:dict];
  154. self.extConfigJson = [self objectOrNilForKey:kHomeMusicModelExtConfigJson fromDictionary:dict];
  155. self.addName = [self objectOrNilForKey:kHomeMusicModelAddName fromDictionary:dict];
  156. self.paymentType = [self objectOrNilForKey:kHomeMusicModelPaymentType fromDictionary:dict];
  157. self.favorite = [[self objectOrNilForKey:kHomeMusicModelFavorite fromDictionary:dict] doubleValue];
  158. self.auditStatus = [self objectOrNilForKey:kHomeMusicModelAuditStatus fromDictionary:dict];
  159. self.createBy = [[self objectOrNilForKey:kHomeMusicModelCreateBy fromDictionary:dict] doubleValue];
  160. self.accompanimentType = [self objectOrNilForKey:kHomeMusicModelAccompanimentType fromDictionary:dict];
  161. self.topFlag = [[self objectOrNilForKey:kHomeMusicModelTopFlag fromDictionary:dict] doubleValue];
  162. self.midiUrl = [self objectOrNilForKey:kHomeMusicModelMidiUrl fromDictionary:dict];
  163. self.composer = [self objectOrNilForKey:kHomeMusicModelComposer fromDictionary:dict];
  164. self.sourceType = [self objectOrNilForKey:kHomeMusicModelSourceType fromDictionary:dict];
  165. self.firstPassAuditTime = [self objectOrNilForKey:kHomeMusicModelFirstPassAuditTime fromDictionary:dict];
  166. self.mp3Type = [self objectOrNilForKey:kHomeMusicModelMp3Type fromDictionary:dict];
  167. self.hotFlag = [self objectOrNilForKey:kHomeMusicModelHotFlag fromDictionary:dict];
  168. self.createTime = [self objectOrNilForKey:kHomeMusicModelCreateTime fromDictionary:dict];
  169. self.playSpeed = [[self objectOrNilForKey:kHomeMusicModelPlaySpeed fromDictionary:dict] doubleValue];
  170. self.hasBeat = [self objectOrNilForKey:kHomeMusicModelHasBeat fromDictionary:dict];
  171. self.audioFileUrl = [self objectOrNilForKey:kHomeMusicModelAudioFileUrl fromDictionary:dict];
  172. self.reason = [self objectOrNilForKey:kHomeMusicModelReason fromDictionary:dict];
  173. self.auditVersion = [[self objectOrNilForKey:kHomeMusicModelAuditVersion fromDictionary:dict] doubleValue];
  174. self.musicSubject = [self objectOrNilForKey:kHomeMusicModelMusicSubject fromDictionary:dict];
  175. self.userId = [[self objectOrNilForKey:kHomeMusicModelUserId fromDictionary:dict] doubleValue];
  176. self.submitAuditTime = [self objectOrNilForKey:kHomeMusicModelSubmitAuditTime fromDictionary:dict];
  177. self.musicSheetType = [self objectOrNilForKey:kHomeMusicModelMusicSheetType fromDictionary:dict];
  178. }
  179. return self;
  180. }
  181. - (NSDictionary *)dictionaryRepresentation
  182. {
  183. NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
  184. [mutableDict setValue:self.metronomeUrl forKey:kHomeMusicModelMetronomeUrl];
  185. [mutableDict setValue:self.musicSheetName forKey:kHomeMusicModelMusicSheetName];
  186. [mutableDict setValue:[NSNumber numberWithDouble:self.albumNums] forKey:kHomeMusicModelAlbumNums];
  187. [mutableDict setValue:self.internalBaseClassIdentifier forKey:kHomeMusicModelId];
  188. [mutableDict setValue:self.xmlFileUrl forKey:kHomeMusicModelXmlFileUrl];
  189. [mutableDict setValue:[NSNumber numberWithDouble:self.showFingering] forKey:kHomeMusicModelShowFingering];
  190. [mutableDict setValue:[NSNumber numberWithDouble:self.albumSortNumber] forKey:kHomeMusicModelAlbumSortNumber];
  191. [mutableDict setValue:[NSNumber numberWithDouble:self.state] forKey:kHomeMusicModelState];
  192. [mutableDict setValue:self.remark forKey:kHomeMusicModelRemark];
  193. [mutableDict setValue:self.titleImg forKey:kHomeMusicModelTitleImg];
  194. [mutableDict setValue:[NSNumber numberWithDouble:self.notation] forKey:kHomeMusicModelNotation];
  195. [mutableDict setValue:self.musicImg forKey:kHomeMusicModelMusicImg];
  196. [mutableDict setValue:[NSNumber numberWithDouble:self.favoriteCount] forKey:kHomeMusicModelFavoriteCount];
  197. [mutableDict setValue:self.url forKey:kHomeMusicModelUrl];
  198. [mutableDict setValue:[NSNumber numberWithDouble:self.musicPrice] forKey:kHomeMusicModelMusicPrice];
  199. [mutableDict setValue:[NSNumber numberWithDouble:self.sortNumber] forKey:kHomeMusicModelSortNumber];
  200. [mutableDict setValue:[NSNumber numberWithDouble:self.exquisiteFlag] forKey:kHomeMusicModelExquisiteFlag];
  201. [mutableDict setValue:self.play forKey:kHomeMusicModelPlay];
  202. [mutableDict setValue:self.addUserAvatar forKey:kHomeMusicModelAddUserAvatar];
  203. [mutableDict setValue:self.audioType forKey:kHomeMusicModelAudioType];
  204. [mutableDict setValue:[NSNumber numberWithDouble:self.canEvaluate] forKey:kHomeMusicModelCanEvaluate];
  205. [mutableDict setValue:[NSNumber numberWithBool:self.delFlag] forKey:kHomeMusicModelDelFlag];
  206. [mutableDict setValue:self.musicTagNames forKey:kHomeMusicModelMusicTagNames];
  207. [mutableDict setValue:self.subjectNames forKey:kHomeMusicModelSubjectNames];
  208. [mutableDict setValue:self.chargeType forKey:kHomeMusicModelChargeType];
  209. [mutableDict setValue:self.updateTime forKey:kHomeMusicModelUpdateTime];
  210. [mutableDict setValue:[NSNumber numberWithDouble:self.updateBy] forKey:kHomeMusicModelUpdateBy];
  211. [mutableDict setValue:self.musicTag forKey:kHomeMusicModelMusicTag];
  212. [mutableDict setValue:self.extConfigJson forKey:kHomeMusicModelExtConfigJson];
  213. [mutableDict setValue:self.addName forKey:kHomeMusicModelAddName];
  214. [mutableDict setValue:self.paymentType forKey:kHomeMusicModelPaymentType];
  215. [mutableDict setValue:[NSNumber numberWithDouble:self.favorite] forKey:kHomeMusicModelFavorite];
  216. [mutableDict setValue:self.auditStatus forKey:kHomeMusicModelAuditStatus];
  217. [mutableDict setValue:[NSNumber numberWithDouble:self.createBy] forKey:kHomeMusicModelCreateBy];
  218. [mutableDict setValue:self.accompanimentType forKey:kHomeMusicModelAccompanimentType];
  219. [mutableDict setValue:[NSNumber numberWithDouble:self.topFlag] forKey:kHomeMusicModelTopFlag];
  220. [mutableDict setValue:self.midiUrl forKey:kHomeMusicModelMidiUrl];
  221. [mutableDict setValue:self.composer forKey:kHomeMusicModelComposer];
  222. [mutableDict setValue:self.sourceType forKey:kHomeMusicModelSourceType];
  223. [mutableDict setValue:self.firstPassAuditTime forKey:kHomeMusicModelFirstPassAuditTime];
  224. [mutableDict setValue:self.mp3Type forKey:kHomeMusicModelMp3Type];
  225. [mutableDict setValue:self.hotFlag forKey:kHomeMusicModelHotFlag];
  226. [mutableDict setValue:self.createTime forKey:kHomeMusicModelCreateTime];
  227. [mutableDict setValue:[NSNumber numberWithDouble:self.playSpeed] forKey:kHomeMusicModelPlaySpeed];
  228. [mutableDict setValue:self.hasBeat forKey:kHomeMusicModelHasBeat];
  229. [mutableDict setValue:self.audioFileUrl forKey:kHomeMusicModelAudioFileUrl];
  230. [mutableDict setValue:self.reason forKey:kHomeMusicModelReason];
  231. [mutableDict setValue:[NSNumber numberWithDouble:self.auditVersion] forKey:kHomeMusicModelAuditVersion];
  232. [mutableDict setValue:self.musicSubject forKey:kHomeMusicModelMusicSubject];
  233. [mutableDict setValue:[NSNumber numberWithDouble:self.userId] forKey:kHomeMusicModelUserId];
  234. [mutableDict setValue:self.submitAuditTime forKey:kHomeMusicModelSubmitAuditTime];
  235. [mutableDict setValue:self.musicSheetType forKey:kHomeMusicModelMusicSheetType];
  236. return [NSDictionary dictionaryWithDictionary:mutableDict];
  237. }
  238. - (NSString *)description
  239. {
  240. return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
  241. }
  242. #pragma mark - Helper Method
  243. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
  244. {
  245. id object = [dict objectForKey:aKey];
  246. if ([object isKindOfClass:[NSNumber class]]) {
  247. NSNumber *number = object;
  248. object = [number stringValue];
  249. }
  250. return [object isEqual:[NSNull null]] ? nil : object;
  251. }
  252. #pragma mark - NSCoding Methods
  253. - (id)initWithCoder:(NSCoder *)aDecoder
  254. {
  255. self = [super init];
  256. self.metronomeUrl = [aDecoder decodeObjectForKey:kHomeMusicModelMetronomeUrl];
  257. self.musicSheetName = [aDecoder decodeObjectForKey:kHomeMusicModelMusicSheetName];
  258. self.albumNums = [aDecoder decodeDoubleForKey:kHomeMusicModelAlbumNums];
  259. self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kHomeMusicModelId];
  260. self.xmlFileUrl = [aDecoder decodeObjectForKey:kHomeMusicModelXmlFileUrl];
  261. self.showFingering = [aDecoder decodeDoubleForKey:kHomeMusicModelShowFingering];
  262. self.albumSortNumber = [aDecoder decodeDoubleForKey:kHomeMusicModelAlbumSortNumber];
  263. self.state = [aDecoder decodeDoubleForKey:kHomeMusicModelState];
  264. self.remark = [aDecoder decodeObjectForKey:kHomeMusicModelRemark];
  265. self.titleImg = [aDecoder decodeObjectForKey:kHomeMusicModelTitleImg];
  266. self.notation = [aDecoder decodeDoubleForKey:kHomeMusicModelNotation];
  267. self.musicImg = [aDecoder decodeObjectForKey:kHomeMusicModelMusicImg];
  268. self.favoriteCount = [aDecoder decodeDoubleForKey:kHomeMusicModelFavoriteCount];
  269. self.url = [aDecoder decodeObjectForKey:kHomeMusicModelUrl];
  270. self.musicPrice = [aDecoder decodeDoubleForKey:kHomeMusicModelMusicPrice];
  271. self.sortNumber = [aDecoder decodeDoubleForKey:kHomeMusicModelSortNumber];
  272. self.exquisiteFlag = [aDecoder decodeDoubleForKey:kHomeMusicModelExquisiteFlag];
  273. self.play = [aDecoder decodeObjectForKey:kHomeMusicModelPlay];
  274. self.addUserAvatar = [aDecoder decodeObjectForKey:kHomeMusicModelAddUserAvatar];
  275. self.audioType = [aDecoder decodeObjectForKey:kHomeMusicModelAudioType];
  276. self.canEvaluate = [aDecoder decodeDoubleForKey:kHomeMusicModelCanEvaluate];
  277. self.delFlag = [aDecoder decodeBoolForKey:kHomeMusicModelDelFlag];
  278. self.musicTagNames = [aDecoder decodeObjectForKey:kHomeMusicModelMusicTagNames];
  279. self.subjectNames = [aDecoder decodeObjectForKey:kHomeMusicModelSubjectNames];
  280. self.chargeType = [aDecoder decodeObjectForKey:kHomeMusicModelChargeType];
  281. self.updateTime = [aDecoder decodeObjectForKey:kHomeMusicModelUpdateTime];
  282. self.updateBy = [aDecoder decodeDoubleForKey:kHomeMusicModelUpdateBy];
  283. self.musicTag = [aDecoder decodeObjectForKey:kHomeMusicModelMusicTag];
  284. self.extConfigJson = [aDecoder decodeObjectForKey:kHomeMusicModelExtConfigJson];
  285. self.addName = [aDecoder decodeObjectForKey:kHomeMusicModelAddName];
  286. self.paymentType = [aDecoder decodeObjectForKey:kHomeMusicModelPaymentType];
  287. self.favorite = [aDecoder decodeDoubleForKey:kHomeMusicModelFavorite];
  288. self.auditStatus = [aDecoder decodeObjectForKey:kHomeMusicModelAuditStatus];
  289. self.createBy = [aDecoder decodeDoubleForKey:kHomeMusicModelCreateBy];
  290. self.accompanimentType = [aDecoder decodeObjectForKey:kHomeMusicModelAccompanimentType];
  291. self.topFlag = [aDecoder decodeDoubleForKey:kHomeMusicModelTopFlag];
  292. self.midiUrl = [aDecoder decodeObjectForKey:kHomeMusicModelMidiUrl];
  293. self.composer = [aDecoder decodeObjectForKey:kHomeMusicModelComposer];
  294. self.sourceType = [aDecoder decodeObjectForKey:kHomeMusicModelSourceType];
  295. self.firstPassAuditTime = [aDecoder decodeObjectForKey:kHomeMusicModelFirstPassAuditTime];
  296. self.mp3Type = [aDecoder decodeObjectForKey:kHomeMusicModelMp3Type];
  297. self.hotFlag = [aDecoder decodeObjectForKey:kHomeMusicModelHotFlag];
  298. self.createTime = [aDecoder decodeObjectForKey:kHomeMusicModelCreateTime];
  299. self.playSpeed = [aDecoder decodeDoubleForKey:kHomeMusicModelPlaySpeed];
  300. self.hasBeat = [aDecoder decodeObjectForKey:kHomeMusicModelHasBeat];
  301. self.audioFileUrl = [aDecoder decodeObjectForKey:kHomeMusicModelAudioFileUrl];
  302. self.reason = [aDecoder decodeObjectForKey:kHomeMusicModelReason];
  303. self.auditVersion = [aDecoder decodeDoubleForKey:kHomeMusicModelAuditVersion];
  304. self.musicSubject = [aDecoder decodeObjectForKey:kHomeMusicModelMusicSubject];
  305. self.userId = [aDecoder decodeDoubleForKey:kHomeMusicModelUserId];
  306. self.submitAuditTime = [aDecoder decodeObjectForKey:kHomeMusicModelSubmitAuditTime];
  307. self.musicSheetType = [aDecoder decodeObjectForKey:kHomeMusicModelMusicSheetType];
  308. return self;
  309. }
  310. - (void)encodeWithCoder:(NSCoder *)aCoder
  311. {
  312. [aCoder encodeObject:_metronomeUrl forKey:kHomeMusicModelMetronomeUrl];
  313. [aCoder encodeObject:_musicSheetName forKey:kHomeMusicModelMusicSheetName];
  314. [aCoder encodeDouble:_albumNums forKey:kHomeMusicModelAlbumNums];
  315. [aCoder encodeObject:_internalBaseClassIdentifier forKey:kHomeMusicModelId];
  316. [aCoder encodeObject:_xmlFileUrl forKey:kHomeMusicModelXmlFileUrl];
  317. [aCoder encodeDouble:_showFingering forKey:kHomeMusicModelShowFingering];
  318. [aCoder encodeDouble:_albumSortNumber forKey:kHomeMusicModelAlbumSortNumber];
  319. [aCoder encodeDouble:_state forKey:kHomeMusicModelState];
  320. [aCoder encodeObject:_remark forKey:kHomeMusicModelRemark];
  321. [aCoder encodeObject:_titleImg forKey:kHomeMusicModelTitleImg];
  322. [aCoder encodeDouble:_notation forKey:kHomeMusicModelNotation];
  323. [aCoder encodeObject:_musicImg forKey:kHomeMusicModelMusicImg];
  324. [aCoder encodeDouble:_favoriteCount forKey:kHomeMusicModelFavoriteCount];
  325. [aCoder encodeObject:_url forKey:kHomeMusicModelUrl];
  326. [aCoder encodeDouble:_musicPrice forKey:kHomeMusicModelMusicPrice];
  327. [aCoder encodeDouble:_sortNumber forKey:kHomeMusicModelSortNumber];
  328. [aCoder encodeDouble:_exquisiteFlag forKey:kHomeMusicModelExquisiteFlag];
  329. [aCoder encodeObject:_play forKey:kHomeMusicModelPlay];
  330. [aCoder encodeObject:_addUserAvatar forKey:kHomeMusicModelAddUserAvatar];
  331. [aCoder encodeObject:_audioType forKey:kHomeMusicModelAudioType];
  332. [aCoder encodeDouble:_canEvaluate forKey:kHomeMusicModelCanEvaluate];
  333. [aCoder encodeBool:_delFlag forKey:kHomeMusicModelDelFlag];
  334. [aCoder encodeObject:_musicTagNames forKey:kHomeMusicModelMusicTagNames];
  335. [aCoder encodeObject:_subjectNames forKey:kHomeMusicModelSubjectNames];
  336. [aCoder encodeObject:_chargeType forKey:kHomeMusicModelChargeType];
  337. [aCoder encodeObject:_updateTime forKey:kHomeMusicModelUpdateTime];
  338. [aCoder encodeDouble:_updateBy forKey:kHomeMusicModelUpdateBy];
  339. [aCoder encodeObject:_musicTag forKey:kHomeMusicModelMusicTag];
  340. [aCoder encodeObject:_extConfigJson forKey:kHomeMusicModelExtConfigJson];
  341. [aCoder encodeObject:_addName forKey:kHomeMusicModelAddName];
  342. [aCoder encodeObject:_paymentType forKey:kHomeMusicModelPaymentType];
  343. [aCoder encodeDouble:_favorite forKey:kHomeMusicModelFavorite];
  344. [aCoder encodeObject:_auditStatus forKey:kHomeMusicModelAuditStatus];
  345. [aCoder encodeDouble:_createBy forKey:kHomeMusicModelCreateBy];
  346. [aCoder encodeObject:_accompanimentType forKey:kHomeMusicModelAccompanimentType];
  347. [aCoder encodeDouble:_topFlag forKey:kHomeMusicModelTopFlag];
  348. [aCoder encodeObject:_midiUrl forKey:kHomeMusicModelMidiUrl];
  349. [aCoder encodeObject:_composer forKey:kHomeMusicModelComposer];
  350. [aCoder encodeObject:_sourceType forKey:kHomeMusicModelSourceType];
  351. [aCoder encodeObject:_firstPassAuditTime forKey:kHomeMusicModelFirstPassAuditTime];
  352. [aCoder encodeObject:_mp3Type forKey:kHomeMusicModelMp3Type];
  353. [aCoder encodeObject:_hotFlag forKey:kHomeMusicModelHotFlag];
  354. [aCoder encodeObject:_createTime forKey:kHomeMusicModelCreateTime];
  355. [aCoder encodeDouble:_playSpeed forKey:kHomeMusicModelPlaySpeed];
  356. [aCoder encodeObject:_hasBeat forKey:kHomeMusicModelHasBeat];
  357. [aCoder encodeObject:_audioFileUrl forKey:kHomeMusicModelAudioFileUrl];
  358. [aCoder encodeObject:_reason forKey:kHomeMusicModelReason];
  359. [aCoder encodeDouble:_auditVersion forKey:kHomeMusicModelAuditVersion];
  360. [aCoder encodeObject:_musicSubject forKey:kHomeMusicModelMusicSubject];
  361. [aCoder encodeDouble:_userId forKey:kHomeMusicModelUserId];
  362. [aCoder encodeObject:_submitAuditTime forKey:kHomeMusicModelSubmitAuditTime];
  363. [aCoder encodeObject:_musicSheetType forKey:kHomeMusicModelMusicSheetType];
  364. }
  365. - (id)copyWithZone:(NSZone *)zone
  366. {
  367. HomeMusicModel *copy = [[HomeMusicModel alloc] init];
  368. if (copy) {
  369. copy.metronomeUrl = [self.metronomeUrl copyWithZone:zone];
  370. copy.musicSheetName = [self.musicSheetName copyWithZone:zone];
  371. copy.albumNums = self.albumNums;
  372. copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone];
  373. copy.xmlFileUrl = [self.xmlFileUrl copyWithZone:zone];
  374. copy.showFingering = self.showFingering;
  375. copy.albumSortNumber = self.albumSortNumber;
  376. copy.state = self.state;
  377. copy.remark = [self.remark copyWithZone:zone];
  378. copy.titleImg = [self.titleImg copyWithZone:zone];
  379. copy.notation = self.notation;
  380. copy.musicImg = [self.musicImg copyWithZone:zone];
  381. copy.favoriteCount = self.favoriteCount;
  382. copy.url = [self.url copyWithZone:zone];
  383. copy.musicPrice = self.musicPrice;
  384. copy.sortNumber = self.sortNumber;
  385. copy.exquisiteFlag = self.exquisiteFlag;
  386. copy.play = [self.play copyWithZone:zone];
  387. copy.addUserAvatar = [self.addUserAvatar copyWithZone:zone];
  388. copy.audioType = [self.audioType copyWithZone:zone];
  389. copy.canEvaluate = self.canEvaluate;
  390. copy.delFlag = self.delFlag;
  391. copy.musicTagNames = [self.musicTagNames copyWithZone:zone];
  392. copy.subjectNames = [self.subjectNames copyWithZone:zone];
  393. copy.chargeType = [self.chargeType copyWithZone:zone];
  394. copy.updateTime = [self.updateTime copyWithZone:zone];
  395. copy.updateBy = self.updateBy;
  396. copy.musicTag = [self.musicTag copyWithZone:zone];
  397. copy.extConfigJson = [self.extConfigJson copyWithZone:zone];
  398. copy.addName = [self.addName copyWithZone:zone];
  399. copy.paymentType = [self.paymentType copyWithZone:zone];
  400. copy.favorite = self.favorite;
  401. copy.auditStatus = [self.auditStatus copyWithZone:zone];
  402. copy.createBy = self.createBy;
  403. copy.accompanimentType = [self.accompanimentType copyWithZone:zone];
  404. copy.topFlag = self.topFlag;
  405. copy.midiUrl = [self.midiUrl copyWithZone:zone];
  406. copy.composer = [self.composer copyWithZone:zone];
  407. copy.sourceType = [self.sourceType copyWithZone:zone];
  408. copy.firstPassAuditTime = [self.firstPassAuditTime copyWithZone:zone];
  409. copy.mp3Type = [self.mp3Type copyWithZone:zone];
  410. copy.hotFlag = [self.hotFlag copyWithZone:zone];
  411. copy.createTime = [self.createTime copyWithZone:zone];
  412. copy.playSpeed = self.playSpeed;
  413. copy.hasBeat = [self.hasBeat copyWithZone:zone];
  414. copy.audioFileUrl = [self.audioFileUrl copyWithZone:zone];
  415. copy.reason = [self.reason copyWithZone:zone];
  416. copy.auditVersion = self.auditVersion;
  417. copy.musicSubject = [self.musicSubject copyWithZone:zone];
  418. copy.userId = self.userId;
  419. copy.submitAuditTime = [self.submitAuditTime copyWithZone:zone];
  420. copy.musicSheetType = [self.musicSheetType copyWithZone:zone];
  421. }
  422. return copy;
  423. }
  424. @end