問題:
在項目中,經常遇到程序在獲取某些數據之后莫名崩潰。原因是:由于服務器的數據庫中有些字段為空,然后以JSON形式返回給客戶端時就會出現這樣的數據:repairs = "<null>"
這個數據類型不是nil 也不是 String。 解析成對象之后,如果直接向這個對象發送消息(eg:length,count 等等)就會直接崩潰。提示錯誤為:-[NSNull length]: unrecognized selector sent to instance
解決方案:
用了一個Category,叫做 NullSafe 。
NullSafe思路:在運行時操作,把這個討厭的空值置為nil,而nil是安全的,可以向nil對象發送任何message而不會奔潰。這個category使用起來非常方便,只要加入到了工程中就可以了,你其他的什么都不用做,很簡單。
安裝和使用
要使用NullSafe,只需將NullSafe.m文件拖到項目中。NullSafe將在運行時自動加載,你不需要在代碼中包括任何頭文件。