@@ -23,7 +23,6 @@ + (void)load
23
23
}
24
24
25
25
#pragma mark - --公共方法--
26
- #pragma mark - 字典转模型
27
26
+ (instancetype )objectWithJSONData : (NSData *)data
28
27
{
29
28
MJAssertParamNotNil2 (data, nil );
@@ -57,7 +56,7 @@ - (instancetype)setKeyValues:(NSDictionary *)keyValues
57
56
{
58
57
MJAssert2 ([keyValues isKindOfClass: [NSDictionary class ]], self);
59
58
60
- [self enumerateIvarsWithBlock: ^(MJIvar *ivar, BOOL *stop) {
59
+ [[ self class ] enumerateIvarsWithBlock: ^(MJIvar *ivar, BOOL *stop) {
61
60
// 1.取出属性值
62
61
id value = keyValues ;
63
62
for (NSString *key in ivar.keys ) {
@@ -103,14 +102,52 @@ - (instancetype)setKeyValues:(NSDictionary *)keyValues
103
102
return self;
104
103
}
105
104
105
+ + (NSArray *)objectArrayWithJSONData : (NSData *)data
106
+ {
107
+ MJAssertParamNotNil2 (data, nil );
108
+
109
+ return [self objectArrayWithKeyValuesArray: [NSJSONSerialization JSONObjectWithData: data options: kNilOptions error: nil ]];
110
+ }
111
+
112
+ + (NSArray *)objectArrayWithKeyValuesArray : (NSArray *)keyValuesArray
113
+ {
114
+ // 1.判断真实性
115
+ MJAssert2 ([keyValuesArray isKindOfClass: [NSArray class ]], nil );
116
+
117
+ // 2.创建数组
118
+ NSMutableArray *modelArray = [NSMutableArray array ];
119
+
120
+ // 3.遍历
121
+ for (NSDictionary *keyValues in keyValuesArray) {
122
+ id model = [self objectWithKeyValues: keyValues];
123
+ if (model) [modelArray addObject: model];
124
+ }
125
+
126
+ return modelArray;
127
+ }
128
+
129
+ + (NSArray *)objectArrayWithFilename : (NSString *)filename
130
+ {
131
+ MJAssertParamNotNil2 (filename, nil );
132
+
133
+ return [self objectArrayWithFile: [[NSBundle mainBundle ] pathForResource: filename ofType: nil ]];
134
+ }
135
+
136
+ + (NSArray *)objectArrayWithFile : (NSString *)file
137
+ {
138
+ MJAssertParamNotNil2 (file, nil );
139
+
140
+ return [self objectArrayWithKeyValuesArray: [NSArray arrayWithContentsOfFile: file]];
141
+ }
142
+
106
143
- (NSDictionary *)keyValues
107
144
{
108
145
// 如果自己不是模型类
109
146
if ([MJFoundation isClassFromFoundation: [self class ]]) return (NSDictionary *)self;
110
147
111
- __block NSMutableDictionary *keyValues = [NSMutableDictionary dictionary ];
148
+ __block NSMutableDictionary *keyValues = [NSMutableDictionary dictionary ];
112
149
113
- [self enumerateIvarsWithBlock: ^(MJIvar *ivar, BOOL *stop) {
150
+ [[ self class ] enumerateIvarsWithBlock: ^(MJIvar *ivar, BOOL *stop) {
114
151
// 1.取出属性值
115
152
id value = [ivar valueFromObject: self ];
116
153
if (!value) return ;
@@ -142,7 +179,7 @@ - (NSDictionary *)keyValues
142
179
}
143
180
innerDict = tempDict;
144
181
}
145
- }];
182
+ }];
146
183
}];
147
184
148
185
// 转换完毕
@@ -153,13 +190,6 @@ - (NSDictionary *)keyValues
153
190
return keyValues;
154
191
}
155
192
156
- + (NSArray *)objectArrayWithJSONData : (NSData *)data
157
- {
158
- MJAssertParamNotNil2 (data, nil );
159
-
160
- return [self objectArrayWithKeyValuesArray: [NSJSONSerialization JSONObjectWithData: data options: kNilOptions error: nil ]];
161
- }
162
-
163
193
+ (NSArray *)keyValuesArrayWithObjectArray : (NSArray *)objectArray
164
194
{
165
195
// 0.判断真实性
@@ -172,53 +202,4 @@ + (NSArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray
172
202
}
173
203
return keyValuesArray;
174
204
}
175
-
176
- #pragma mark - 字典数组转模型数组
177
- + (NSArray *)objectArrayWithKeyValuesArray : (NSArray *)keyValuesArray
178
- {
179
- // 1.判断真实性
180
- MJAssert2 ([keyValuesArray isKindOfClass: [NSArray class ]], nil );
181
-
182
- // 2.创建数组
183
- NSMutableArray *modelArray = [NSMutableArray array ];
184
-
185
- // 3.遍历
186
- for (NSDictionary *keyValues in keyValuesArray) {
187
- id model = [self objectWithKeyValues: keyValues];
188
- if (model) [modelArray addObject: model];
189
- }
190
-
191
- return modelArray;
192
- }
193
-
194
- + (NSArray *)objectArrayWithFilename : (NSString *)filename
195
- {
196
- MJAssertParamNotNil2 (filename, nil );
197
-
198
- return [self objectArrayWithFile: [[NSBundle mainBundle ] pathForResource: filename ofType: nil ]];
199
- }
200
-
201
- + (NSArray *)objectArrayWithFile : (NSString *)file
202
- {
203
- MJAssertParamNotNil2 (file, nil );
204
-
205
- return [self objectArrayWithKeyValuesArray: [NSArray arrayWithContentsOfFile: file]];
206
- }
207
-
208
- #pragma mark - --私有方法--
209
- - (NSString *)keyWithPropertyName : (NSString *)propertyName
210
- {
211
- MJAssertParamNotNil2 (propertyName, nil );
212
-
213
- NSString *key = nil ;
214
- // 1.查看有没有需要替换的key
215
- if ([self respondsToSelector: @selector (replacedKeyFromPropertyName )]) {
216
- key = self.replacedKeyFromPropertyName [propertyName];
217
- }
218
-
219
- // 2.用属性名作为key
220
- if (!key) key = propertyName;
221
-
222
- return key;
223
- }
224
205
@end
0 commit comments