NSNull 找不到指定方法解決方案[MD測試]

近期遇到一個問題:

由於後臺人員對於接口數據沒有做空值處理,導致客戶端接收到的有些數據爲空(NSNull),而針對此類數據恰好客戶端的存儲結構爲int和float類型,類型轉換時報出了[NSNull intValue]或者[NSNull floatValue] unrecognized selector sent to instance 的錯誤。

解決此問題嘗試了以下思路:

1 添加returnObject == [NSNull null] 判斷,NSNull的元素配置一個目標類型的初始值。
問題解決了,但這樣做的話對於應用需要修改的地方較多,想想比較煩。

2 想到此問題的引起原因是NSNull缺失這兩種方法,也就是說只要爲NSNull擴展補充缺失的方法就不會有問題了。

擴展NSNull代碼如下:

#import "NSNull+NullCast.h" 

- (float)floatValue {
    return 0.0;
} 

- (int)intValue {
    return 0;
}

在可能出現類似問題的類中引入NSNull+NullCast這個類問題就解決了,無需修改邏輯代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章