| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- //
- // MOThemeModel.m
- //
- // Created by 青天 猫 on 2025/2/21
- // Copyright (c) 2025 __MyCompanyName__. All rights reserved.
- //
- #import "MOThemeModel.h"
- NSString *const kMOThemeModelCountryColorOn = @"countryColorOn";
- NSString *const kMOThemeModelMainGift = @"mainGift";
- NSString *const kMOThemeModelSlideBackgroundMessage = @"slideBackgroundMessage";
- NSString *const kMOThemeModelSearchFamily = @"searchFamily";
- NSString *const kMOThemeModelMainMain = @"mainMain";
- NSString *const kMOThemeModelSearchPk = @"searchPk";
- NSString *const kMOThemeModelMainMe = @"mainMe";
- NSString *const kMOThemeModelSearchWealth = @"searchWealth";
- NSString *const kMOThemeModelMeUsernameColor = @"meUsernameColor";
- NSString *const kMOThemeModelMainMeOn = @"mainMeOn";
- NSString *const kMOThemeModelCountryBgColor = @"countryBgColor";
- NSString *const kMOThemeModelMainSearch = @"mainSearch";
- NSString *const kMOThemeModelMainMainOn = @"mainMainOn";
- NSString *const kMOThemeModelMainSearchOn = @"mainSearchOn";
- NSString *const kMOThemeModelCountryBgColorOn = @"countryBgColorOn";
- NSString *const kMOThemeModelSlideBackgroundSearch = @"slideBackgroundSearch";
- NSString *const kMOThemeModelMainIsDynamic = @"mainIsDynamic";
- NSString *const kMOThemeModelMainMessage = @"mainMessage";
- NSString *const kMOThemeModelTitleBottom = @"titleBottom";
- NSString *const kMOThemeModelTitleColor = @"titleColor";
- NSString *const kMOThemeModelCountryColor = @"countryColor";
- NSString *const kMOThemeModelSearchIncome = @"searchIncome";
- NSString *const kMOThemeModelTitleColorOn = @"titleColorOn";
- NSString *const kMOThemeModelIsOpen = @"isOpen";
- NSString *const kMOThemeModelSkinVersion = @"skinVersion";
- NSString *const kMOThemeModelMainBackground = @"mainBackground";
- NSString *const kMOThemeModelSlideBackgroundMe = @"slideBackgroundMe";
- NSString *const kMOThemeModelMainMessageOn = @"mainMessageOn";
- NSString *const kMOThemeModelSlideBackgroundMain = @"slideBackgroundMain";
- NSString *const kMOThemeModelMainPlay = @"mainPlay";
- @interface MOThemeModel ()
- - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
- @end
- @implementation MOThemeModel
- @synthesize countryColorOn = _countryColorOn;
- @synthesize mainGift = _mainGift;
- @synthesize slideBackgroundMessage = _slideBackgroundMessage;
- @synthesize searchFamily = _searchFamily;
- @synthesize mainMain = _mainMain;
- @synthesize searchPk = _searchPk;
- @synthesize mainMe = _mainMe;
- @synthesize searchWealth = _searchWealth;
- @synthesize meUsernameColor = _meUsernameColor;
- @synthesize mainMeOn = _mainMeOn;
- @synthesize countryBgColor = _countryBgColor;
- @synthesize mainSearch = _mainSearch;
- @synthesize mainMainOn = _mainMainOn;
- @synthesize mainSearchOn = _mainSearchOn;
- @synthesize countryBgColorOn = _countryBgColorOn;
- @synthesize slideBackgroundSearch = _slideBackgroundSearch;
- @synthesize mainIsDynamic = _mainIsDynamic;
- @synthesize mainMessage = _mainMessage;
- @synthesize titleBottom = _titleBottom;
- @synthesize titleColor = _titleColor;
- @synthesize countryColor = _countryColor;
- @synthesize searchIncome = _searchIncome;
- @synthesize titleColorOn = _titleColorOn;
- @synthesize isOpen = _isOpen;
- @synthesize skinVersion = _skinVersion;
- @synthesize mainBackground = _mainBackground;
- @synthesize slideBackgroundMe = _slideBackgroundMe;
- @synthesize mainMessageOn = _mainMessageOn;
- @synthesize slideBackgroundMain = _slideBackgroundMain;
- @synthesize mainPlay = _mainPlay;
- - (NSDictionary *)getAllProperties {
- NSMutableDictionary *props = [NSMutableDictionary dictionary];
- unsigned int outCount;
- objc_property_t *properties = class_copyPropertyList([self class], &outCount);
-
- for (int i = 0; i < outCount; i++) {
- objc_property_t property = properties[i];
- NSString *propertyName = @(property_getName(property));
- id propertyValue = [self valueForKey:propertyName];
-
- if (propertyValue) {
- [props setObject:propertyValue forKey:propertyName];
- } else {
- // 如果值为空,可以根据需求设置为 NSNull 或跳过
- [props setObject:[NSNull null] forKey:propertyName];
- }
- }
-
- free(properties);
- return props;
- }
- + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict {
- return [[self alloc] initWithDictionary:dict];
- }
- - (instancetype)initWithDictionary:(NSDictionary *)dict {
- self = [super init];
-
- // This check serves to make sure that a non-NSDictionary object
- // passed into the model class doesn't break the parsing.
- if (self && [dict isKindOfClass:[NSDictionary class]]) {
- self.countryColorOn = [self objectOrNilForKey:kMOThemeModelCountryColorOn fromDictionary:dict];
- self.mainGift = [self objectOrNilForKey:kMOThemeModelMainGift fromDictionary:dict];
- self.slideBackgroundMessage = [self objectOrNilForKey:kMOThemeModelSlideBackgroundMessage fromDictionary:dict];
- self.searchFamily = [self objectOrNilForKey:kMOThemeModelSearchFamily fromDictionary:dict];
- self.mainMain = [self objectOrNilForKey:kMOThemeModelMainMain fromDictionary:dict];
- self.searchPk = [self objectOrNilForKey:kMOThemeModelSearchPk fromDictionary:dict];
- self.mainMe = [self objectOrNilForKey:kMOThemeModelMainMe fromDictionary:dict];
- self.searchWealth = [self objectOrNilForKey:kMOThemeModelSearchWealth fromDictionary:dict];
- self.meUsernameColor = [self objectOrNilForKey:kMOThemeModelMeUsernameColor fromDictionary:dict];
- self.mainMeOn = [self objectOrNilForKey:kMOThemeModelMainMeOn fromDictionary:dict];
- self.countryBgColor = [self objectOrNilForKey:kMOThemeModelCountryBgColor fromDictionary:dict];
- self.mainSearch = [self objectOrNilForKey:kMOThemeModelMainSearch fromDictionary:dict];
- self.mainMainOn = [self objectOrNilForKey:kMOThemeModelMainMainOn fromDictionary:dict];
- self.mainSearchOn = [self objectOrNilForKey:kMOThemeModelMainSearchOn fromDictionary:dict];
- self.countryBgColorOn = [self objectOrNilForKey:kMOThemeModelCountryBgColorOn fromDictionary:dict];
- self.slideBackgroundSearch = [self objectOrNilForKey:kMOThemeModelSlideBackgroundSearch fromDictionary:dict];
- self.mainIsDynamic = [[self objectOrNilForKey:kMOThemeModelMainIsDynamic fromDictionary:dict] boolValue];
- self.mainMessage = [self objectOrNilForKey:kMOThemeModelMainMessage fromDictionary:dict];
- self.titleBottom = [self objectOrNilForKey:kMOThemeModelTitleBottom fromDictionary:dict];
- self.titleColor = [self objectOrNilForKey:kMOThemeModelTitleColor fromDictionary:dict];
- self.countryColor = [self objectOrNilForKey:kMOThemeModelCountryColor fromDictionary:dict];
- self.searchIncome = [self objectOrNilForKey:kMOThemeModelSearchIncome fromDictionary:dict];
- self.titleColorOn = [self objectOrNilForKey:kMOThemeModelTitleColorOn fromDictionary:dict];
- self.isOpen = [[self objectOrNilForKey:kMOThemeModelIsOpen fromDictionary:dict] boolValue];
- self.skinVersion = [[self objectOrNilForKey:kMOThemeModelSkinVersion fromDictionary:dict] doubleValue];
- self.mainBackground = [self objectOrNilForKey:kMOThemeModelMainBackground fromDictionary:dict];
- self.slideBackgroundMe = [self objectOrNilForKey:kMOThemeModelSlideBackgroundMe fromDictionary:dict];
- self.mainMessageOn = [self objectOrNilForKey:kMOThemeModelMainMessageOn fromDictionary:dict];
- self.slideBackgroundMain = [self objectOrNilForKey:kMOThemeModelSlideBackgroundMain fromDictionary:dict];
- self.mainPlay = [self objectOrNilForKey:kMOThemeModelMainPlay fromDictionary:dict];
- }
-
- return self;
-
- }
- - (NSDictionary *)dictionaryRepresentation {
- NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
- [mutableDict setValue:self.countryColorOn forKey:kMOThemeModelCountryColorOn];
- [mutableDict setValue:self.mainGift forKey:kMOThemeModelMainGift];
- [mutableDict setValue:self.slideBackgroundMessage forKey:kMOThemeModelSlideBackgroundMessage];
- [mutableDict setValue:self.searchFamily forKey:kMOThemeModelSearchFamily];
- [mutableDict setValue:self.mainMain forKey:kMOThemeModelMainMain];
- [mutableDict setValue:self.searchPk forKey:kMOThemeModelSearchPk];
- [mutableDict setValue:self.mainMe forKey:kMOThemeModelMainMe];
- [mutableDict setValue:self.searchWealth forKey:kMOThemeModelSearchWealth];
- [mutableDict setValue:self.meUsernameColor forKey:kMOThemeModelMeUsernameColor];
- [mutableDict setValue:self.mainMeOn forKey:kMOThemeModelMainMeOn];
- [mutableDict setValue:self.countryBgColor forKey:kMOThemeModelCountryBgColor];
- [mutableDict setValue:self.mainSearch forKey:kMOThemeModelMainSearch];
- [mutableDict setValue:self.mainMainOn forKey:kMOThemeModelMainMainOn];
- [mutableDict setValue:self.mainSearchOn forKey:kMOThemeModelMainSearchOn];
- [mutableDict setValue:self.countryBgColorOn forKey:kMOThemeModelCountryBgColorOn];
- [mutableDict setValue:self.slideBackgroundSearch forKey:kMOThemeModelSlideBackgroundSearch];
- [mutableDict setValue:[NSNumber numberWithBool:self.mainIsDynamic] forKey:kMOThemeModelMainIsDynamic];
- [mutableDict setValue:self.mainMessage forKey:kMOThemeModelMainMessage];
- [mutableDict setValue:self.titleBottom forKey:kMOThemeModelTitleBottom];
- [mutableDict setValue:self.titleColor forKey:kMOThemeModelTitleColor];
- [mutableDict setValue:self.countryColor forKey:kMOThemeModelCountryColor];
- [mutableDict setValue:self.searchIncome forKey:kMOThemeModelSearchIncome];
- [mutableDict setValue:self.titleColorOn forKey:kMOThemeModelTitleColorOn];
- [mutableDict setValue:[NSNumber numberWithBool:self.isOpen] forKey:kMOThemeModelIsOpen];
- [mutableDict setValue:[NSNumber numberWithDouble:self.skinVersion] forKey:kMOThemeModelSkinVersion];
- [mutableDict setValue:self.mainBackground forKey:kMOThemeModelMainBackground];
- [mutableDict setValue:self.slideBackgroundMe forKey:kMOThemeModelSlideBackgroundMe];
- [mutableDict setValue:self.mainMessageOn forKey:kMOThemeModelMainMessageOn];
- [mutableDict setValue:self.slideBackgroundMain forKey:kMOThemeModelSlideBackgroundMain];
- [mutableDict setValue:self.mainPlay forKey:kMOThemeModelMainPlay];
- return [NSDictionary dictionaryWithDictionary:mutableDict];
- }
- - (NSString *)description {
- return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
- }
- #pragma mark - Helper Method
- - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict {
- id object = [dict objectForKey:aKey];
- return [object isEqual:[NSNull null]] ? nil : object;
- }
- #pragma mark - NSCoding Methods
- - (id)initWithCoder:(NSCoder *)aDecoder {
- self = [super init];
- self.countryColorOn = [aDecoder decodeObjectForKey:kMOThemeModelCountryColorOn];
- self.mainGift = [aDecoder decodeObjectForKey:kMOThemeModelMainGift];
- self.slideBackgroundMessage = [aDecoder decodeObjectForKey:kMOThemeModelSlideBackgroundMessage];
- self.searchFamily = [aDecoder decodeObjectForKey:kMOThemeModelSearchFamily];
- self.mainMain = [aDecoder decodeObjectForKey:kMOThemeModelMainMain];
- self.searchPk = [aDecoder decodeObjectForKey:kMOThemeModelSearchPk];
- self.mainMe = [aDecoder decodeObjectForKey:kMOThemeModelMainMe];
- self.searchWealth = [aDecoder decodeObjectForKey:kMOThemeModelSearchWealth];
- self.meUsernameColor = [aDecoder decodeObjectForKey:kMOThemeModelMeUsernameColor];
- self.mainMeOn = [aDecoder decodeObjectForKey:kMOThemeModelMainMeOn];
- self.countryBgColor = [aDecoder decodeObjectForKey:kMOThemeModelCountryBgColor];
- self.mainSearch = [aDecoder decodeObjectForKey:kMOThemeModelMainSearch];
- self.mainMainOn = [aDecoder decodeObjectForKey:kMOThemeModelMainMainOn];
- self.mainSearchOn = [aDecoder decodeObjectForKey:kMOThemeModelMainSearchOn];
- self.countryBgColorOn = [aDecoder decodeObjectForKey:kMOThemeModelCountryBgColorOn];
- self.slideBackgroundSearch = [aDecoder decodeObjectForKey:kMOThemeModelSlideBackgroundSearch];
- self.mainIsDynamic = [aDecoder decodeBoolForKey:kMOThemeModelMainIsDynamic];
- self.mainMessage = [aDecoder decodeObjectForKey:kMOThemeModelMainMessage];
- self.titleBottom = [aDecoder decodeObjectForKey:kMOThemeModelTitleBottom];
- self.titleColor = [aDecoder decodeObjectForKey:kMOThemeModelTitleColor];
- self.countryColor = [aDecoder decodeObjectForKey:kMOThemeModelCountryColor];
- self.searchIncome = [aDecoder decodeObjectForKey:kMOThemeModelSearchIncome];
- self.titleColorOn = [aDecoder decodeObjectForKey:kMOThemeModelTitleColorOn];
- self.isOpen = [aDecoder decodeBoolForKey:kMOThemeModelIsOpen];
- self.skinVersion = [aDecoder decodeDoubleForKey:kMOThemeModelSkinVersion];
- self.mainBackground = [aDecoder decodeObjectForKey:kMOThemeModelMainBackground];
- self.slideBackgroundMe = [aDecoder decodeObjectForKey:kMOThemeModelSlideBackgroundMe];
- self.mainMessageOn = [aDecoder decodeObjectForKey:kMOThemeModelMainMessageOn];
- self.slideBackgroundMain = [aDecoder decodeObjectForKey:kMOThemeModelSlideBackgroundMain];
- self.mainPlay = [aDecoder decodeObjectForKey:kMOThemeModelMainPlay];
- return self;
- }
- - (void)encodeWithCoder:(NSCoder *)aCoder
- {
- [aCoder encodeObject:_countryColorOn forKey:kMOThemeModelCountryColorOn];
- [aCoder encodeObject:_mainGift forKey:kMOThemeModelMainGift];
- [aCoder encodeObject:_slideBackgroundMessage forKey:kMOThemeModelSlideBackgroundMessage];
- [aCoder encodeObject:_searchFamily forKey:kMOThemeModelSearchFamily];
- [aCoder encodeObject:_mainMain forKey:kMOThemeModelMainMain];
- [aCoder encodeObject:_searchPk forKey:kMOThemeModelSearchPk];
- [aCoder encodeObject:_mainMe forKey:kMOThemeModelMainMe];
- [aCoder encodeObject:_searchWealth forKey:kMOThemeModelSearchWealth];
- [aCoder encodeObject:_meUsernameColor forKey:kMOThemeModelMeUsernameColor];
- [aCoder encodeObject:_mainMeOn forKey:kMOThemeModelMainMeOn];
- [aCoder encodeObject:_countryBgColor forKey:kMOThemeModelCountryBgColor];
- [aCoder encodeObject:_mainSearch forKey:kMOThemeModelMainSearch];
- [aCoder encodeObject:_mainMainOn forKey:kMOThemeModelMainMainOn];
- [aCoder encodeObject:_mainSearchOn forKey:kMOThemeModelMainSearchOn];
- [aCoder encodeObject:_countryBgColorOn forKey:kMOThemeModelCountryBgColorOn];
- [aCoder encodeObject:_slideBackgroundSearch forKey:kMOThemeModelSlideBackgroundSearch];
- [aCoder encodeBool:_mainIsDynamic forKey:kMOThemeModelMainIsDynamic];
- [aCoder encodeObject:_mainMessage forKey:kMOThemeModelMainMessage];
- [aCoder encodeObject:_titleBottom forKey:kMOThemeModelTitleBottom];
- [aCoder encodeObject:_titleColor forKey:kMOThemeModelTitleColor];
- [aCoder encodeObject:_countryColor forKey:kMOThemeModelCountryColor];
- [aCoder encodeObject:_searchIncome forKey:kMOThemeModelSearchIncome];
- [aCoder encodeObject:_titleColorOn forKey:kMOThemeModelTitleColorOn];
- [aCoder encodeBool:_isOpen forKey:kMOThemeModelIsOpen];
- [aCoder encodeDouble:_skinVersion forKey:kMOThemeModelSkinVersion];
- [aCoder encodeObject:_mainBackground forKey:kMOThemeModelMainBackground];
- [aCoder encodeObject:_slideBackgroundMe forKey:kMOThemeModelSlideBackgroundMe];
- [aCoder encodeObject:_mainMessageOn forKey:kMOThemeModelMainMessageOn];
- [aCoder encodeObject:_slideBackgroundMain forKey:kMOThemeModelSlideBackgroundMain];
- [aCoder encodeObject:_mainPlay forKey:kMOThemeModelMainPlay];
- }
- - (id)copyWithZone:(NSZone *)zone {
- MOThemeModel *copy = [[MOThemeModel alloc] init];
-
-
-
- if (copy) {
- copy.countryColorOn = [self.countryColorOn copyWithZone:zone];
- copy.mainGift = [self.mainGift copyWithZone:zone];
- copy.slideBackgroundMessage = [self.slideBackgroundMessage copyWithZone:zone];
- copy.searchFamily = [self.searchFamily copyWithZone:zone];
- copy.mainMain = [self.mainMain copyWithZone:zone];
- copy.searchPk = [self.searchPk copyWithZone:zone];
- copy.mainMe = [self.mainMe copyWithZone:zone];
- copy.searchWealth = [self.searchWealth copyWithZone:zone];
- copy.meUsernameColor = [self.meUsernameColor copyWithZone:zone];
- copy.mainMeOn = [self.mainMeOn copyWithZone:zone];
- copy.countryBgColor = [self.countryBgColor copyWithZone:zone];
- copy.mainSearch = [self.mainSearch copyWithZone:zone];
- copy.mainMainOn = [self.mainMainOn copyWithZone:zone];
- copy.mainSearchOn = [self.mainSearchOn copyWithZone:zone];
- copy.countryBgColorOn = [self.countryBgColorOn copyWithZone:zone];
- copy.slideBackgroundSearch = [self.slideBackgroundSearch copyWithZone:zone];
- copy.mainIsDynamic = self.mainIsDynamic;
- copy.mainMessage = [self.mainMessage copyWithZone:zone];
- copy.titleBottom = [self.titleBottom copyWithZone:zone];
- copy.titleColor = [self.titleColor copyWithZone:zone];
- copy.countryColor = [self.countryColor copyWithZone:zone];
- copy.searchIncome = [self.searchIncome copyWithZone:zone];
- copy.titleColorOn = [self.titleColorOn copyWithZone:zone];
- copy.isOpen = self.isOpen;
- copy.skinVersion = self.skinVersion;
- copy.mainBackground = [self.mainBackground copyWithZone:zone];
- copy.slideBackgroundMe = [self.slideBackgroundMe copyWithZone:zone];
- copy.mainMessageOn = [self.mainMessageOn copyWithZone:zone];
- copy.slideBackgroundMain = [self.slideBackgroundMain copyWithZone:zone];
- copy.mainPlay = [self.mainPlay copyWithZone:zone];
- }
-
- return copy;
- }
- @end
|