我有模型类,它包含各种属性,有些属性也包含另一个模型的对象,class.My的问题是我想把模型类对象作为JSON参数直接传递。
请给我指一条路。
例如。
#import "locationModel.h"
interface userModel:NSObject
@property (nonatomic,retain) NSString *uName;
@property (nonatomic,retain) locationModel *mLocation;
// locationModel consist two Properties Lat Lng
@end
我想将objUserModel作为参数传递给json api。请建议我如何将objUserModel作为suggest参数传递。
提前感谢
发布于 2018-05-28 18:21:42
您可以创建一个ModelObject
类,并将所有模型类更改为该类的子类。然后将dictionaryWithPropertiesOfObject:
的实现更改为如下所示:
- (NSDictionary *)dictionaryWithPropertiesOfObject:(id)obj {
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
unsigned count;
objc_property_t *properties = class_copyPropertyList([obj class], &count);
for (int i = 0; i < count; i++) {
NSString *key = [NSString stringWithUTF8String:property_getName(properties[i])];
if([obj valueForKey:key]!=nil){
id targetObject = [obj valueForKey:key];
if ([targetObject isKindOfClass:[ModelObject class]]){
[dict setObject:[self dictionaryWithPropertiesOfObject: targetObject] forKey:key];
}
else if ([targetObject isKindOfClass:[NSArray class]]){
[dict setObject:[self arrayWithDictionariesForObjectsInArray: (NSArray *)targetObject] forKey:key];
}
else {
[dict setObject:targetObject forKey:key];
}
}
}
free(properties);
return [NSDictionary dictionaryWithDictionary:dict];
}
- (NSArray *) arrayWithDictionariesForObjectsInArray: (NSArray *) array {
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
for (id object in array){
[mutableArray addObject:[self dictionaryWithPropertiesOfObject:object]];
}
return [NSArray arrayWithArray:mutableArray];
}
因此,ModelObject
的所有实例都插入到字典中,并带有它们的字典表示。
https://stackoverflow.com/questions/50563680
复制相似问题