拿到服務(wù)器返回給我們的數(shù)據(jù)做相應(yīng)的處理,數(shù)據(jù)轉(zhuǎn)模型基本是每個(gè)移動(dòng)端程序員必需的工作搪桂。我第一次用JSONModel這個(gè)第三方框架處理數(shù)據(jù)透敌,返回的數(shù)據(jù)中有id關(guān)鍵字、description與NSObject自帶的description方法沖突踢械。
ps:
description方法是NSObject自帶的方法酗电,包括類方法和對(duì)象方法
+ (NSString *)description; // 默認(rèn)返回 類名
- (NSString *)description; // 默認(rèn)返回 <類名:內(nèi)存地址>
默認(rèn)情況下利用NSLog和%@輸出對(duì)象的時(shí)返回的就是類名和內(nèi)存地址
為了不和系統(tǒng)的id關(guān)鍵字混淆,需要將id替換為其他字段内列;為了正確輸出description的內(nèi)容撵术,也需要將其替換為其他字段。
我的model的.h文件:
typedef enum {
bankChecking = 0,//審核中
bankCheckFail = 1,//審核失敗
bankCheckSuccess = 2,//已綁定
}BankStatus;
typedef enum {
notDefault = 0,//否
isDefault = 1//是
}BankCardIdDefault;
typedef enum {
chuxuCard = 0//卡類型:0-儲(chǔ)蓄卡
}BankType;
@interface DYBankCardModel : ASBaseDataModel
@property (nonatomic, copy) NSString *openBank;//開戶行
@property (nonatomic, copy) NSString *bankCardId;//銀行卡號(hào)
@property (nonatomic, copy) NSString *bank_description;//描述
@property (nonatomic, assign) BankCardIdDefault isDefault;//是否默認(rèn):0-否,1-是
@property (nonatomic, copy) NSString *name;//卡主姓名
@property (nonatomic, assign) BankStatus status;//狀態(tài)
@property (nonatomic, assign) BankType type;//卡類型
//銀行卡id--刪除銀行卡--提現(xiàn)用到
@property (nonatomic, copy) NSString *bank_id;
解決方法:
在你的model的.m(實(shí)現(xiàn))文件中:
+ (JSONKeyMapper *)keyMapper
{
return [[JSONKeyMapper alloc] initWithDictionary:@{@"description" : @"bank_description", @"id" : @"bank_id"}];
}