拿到服务器返回给我们的数据做相应的处理,数据转模型基本是每个移动端程序员必需的工作。我第一次用JSONModel这个第三方框架处理数据,返回的数据中有id关键字、description与NSObject自带的description方法冲突。
A010C11F-1FE9-4D3E-A6E5-75D75E33FE4A.png
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"}];}
网友评论