Swift3.0-NSNull

  NSNull出場最多的時候是JSON解析。git

在OC中,NSDictionary和NSArray只能存儲對象,因此對於JSON可能存在的null,映射的是NSNULL,而且OC沒有強制類型檢查,能夠任意的向對象發送消息,這樣若是json反序列化出的字典或者數組有null的時候,就會崩潰。例如返回的json 取age字段 integerValue實現拿到age數字。但當age是空的時候,給一個null發送消息,就會野指針崩潰。json

OC的解決辦法通常是 每次發消息的時候都類型檢查,確保不空。或者添加NSNull的分類,讓它響應各類常見方法(integerValue)而且返回默認值。可是這兩種方法都不太好。數組

  而在Swift中,由於強調類型安全。因此基本不會出現這種問題。安全

        if let string = json as? String {
            print("json")
        }else {
            print("解析失敗")
        }

  這時打印結果必定是解析失敗。框架

  不過Swift由於類型判斷很嚴格,因此在類型轉換的時候也很複雜。可能要取很深層次的節點要寫無數個if let 和 as?強轉才行。spa

  此時能夠從git上下載SwiftyJSON框架,這但是擁有上萬star的框架,完美的解決了冗餘的寫法,能夠直接json[""][""][0][""]的方法遊走於數組和字典中。大大的節約了時間。指針

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息