MJExtension中的一個小坑

坑:

用MJExtension 中的mj_keyValues 配合系統(tǒng)的+ (nullable NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error; 將復(fù)雜類型的數(shù)據(jù)轉(zhuǎn)成Json格式的數(shù)據(jù)時,當(dāng)復(fù)雜類型中含有NSDate類型時程序會崩潰。


解決方案:

在 NSObject+MJKeyValue 分類中的- (NSMutableDictionary *)mj_keyValuesWithKeys:(NSArray *)keys ignoredKeys:(NSArray *)ignoredKeys方法里加入NSDate類型判斷,將NSDate類型轉(zhuǎn)為NSNumber類型

// 3.處理模型里面有NSDate類型型的情況

if ([value isKindOfClass:[NSDate class]]) {

// NSDate *date = value;

NSNumber * date = [NSNumber numberWithInteger:[value timeIntervalSince1970]];

value = date;

}

在模塊化這樣的Json字符串的時候請重寫setValue的兩個方法(如果你模塊化用的是這個方法- (void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues)

- (void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues{

for (NSString *key in keyedValues.allKeys) {

[self setValue:keyedValues[key] forKey:key];

}

}


-(void)setValue:(id)value forKey:(NSString *)key{

if ([key isEqualToString:@"stratDate"]) {

if ([value isKindOfClass:[NSNumber class]]) {

value = [NSDate dateWithTimeIntervalSince1970:[(NSNumber *)value integerValue]];

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容