AFNetworking中所遇到的Null
在使用AFNetworking的過程中,難免會遇到Null,例如:
"key" : <null>;
因為大多數的API如果是空值傳過來基本都會是Null,但在iOS中的空指標是nil,因此不做一些判斷的話,在View或是Model......等賦值null的話會導致Crash,AFNetworking有提供一個方便的方法避免掉這個問題。
((AFJSONResponseSerializer *)manager.responseSerializer).removesKeysWithNullValues = YES;
這裡要注意的是下面這個方法
manager.responseSerializer = [AFJSONResponseSerializer serializer];
responseSerializer必須要一樣,HTTP就用HTTP,JSON就用JSON,另外
((AFJSONResponseSerializer *)manager.responseSerializer).removesKeysWithNullValues = YES;
這段必須加在
manager.responseSerializer = [AFJSONResponseSerializer serializer];
後面,不然不會生效。
加上上述程式碼後,回來的資料如果沒有值是<null>的話,AFNetworking會自動把這組Key-Value過濾掉,這樣連這組Key-Value都沒有的情況下,不論View或是Model......等賦值都只會指向空指標,也就是nil,iOS App也就自然不會Crash啦。