拿到服务器返回给我们的数据做相应的处理,数据转模型基本是每个移动端程序员必需的工作。我第一次用JSONModel这个第三方框架处理数据,返回的数据中有id关键字、description与NSObject自带的description方法冲突。
ps:
description方法是NSObject自带的方法,包括类方法和对象方法
+ (NSString *)description; // 默认返回 类名
- (NSString *)description; // 默认返回 <类名:内存地址>
默认情况下利用NSLog和%@输出对象的时返回的就是类名和内存地址
为了不和系统的id关键字混淆,需要将id替换为其他字段;为了正确输出description的内容,也需要将其替换为其他字段。
我的model的.h文件:
typedef enum {
bankChecking = 0,//审核中
bankCheckFail = 1,//审核失败
bankCheckSuccess = 2,//已绑定
}BankStatus;
typedef enum {
notDefault = 0,//否
isDefault = 1//是
}BankCardIdDefault;
typedef enum {
chuxuCard = 0//卡类型:0-储蓄卡
}BankType;
@interface DYBankCardModel : ASBaseDataModel
@property (nonatomic, copy) NSString *openBank;//开户行
@property (nonatomic, copy) NSString *bankCardId;//银行卡号
@property (nonatomic, copy) NSString *bank_description;//描述
@property (nonatomic, assign) BankCardIdDefault isDefault;//是否默认:0-否,1-是
@property (nonatomic, copy) NSString *name;//卡主姓名
@property (nonatomic, assign) BankStatus status;//状态
@property (nonatomic, assign) BankType type;//卡类型
//银行卡id--删除银行卡--提现用到
@property (nonatomic, copy) NSString *bank_id;
解决方法:
在你的model的.m(实现)文件中:
+ (JSONKeyMapper *)keyMapper
{
return [[JSONKeyMapper alloc] initWithDictionary:@{@"description" : @"bank_description", @"id" : @"bank_id"}];
}