我一直在開發應用程序,它使JSON類型的數據的異步請求。最近,我在代碼中發現了一個奇怪的錯誤,我不知道它爲什麼會發生。NSJSONSerialization有時在異步請求中返回空值
好的代碼!
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSError *error=nil;
result = [NSJSONSerialization JSONObjectWithData:retrievedData options:kNilOptions error:&error];
NSLog(@"Result %@",result);
NSLog(@"Retrieved data %@",retrievedData);
}
結果是NSDictionary,retrieveData是NSMutableData。 99%的時間,它工作正常,connectionDidFinishLoading被調用,並且我的結果被填充。然而,在時間的1%提取的數據填充數據,但我的結果是空(你可以在圖片中看到的任何人都可以幫我請
編輯:。?我得到以下錯誤
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Garbage at end.) UserInfo=0x753e5c0 {NSDebugDescription=Garbage at end.}
你是對的,我忘了檢查錯誤...謝謝,更新我的問題:) – Yanchi
所以問題不在我的代碼中,但實際上在服務器端?我問這個,因爲大多數時候它工作正常,我們有Android應用程序,這從來沒有發生:( – Yanchi
判斷的錯誤,是的。你可以通過將'retrieveData'轉換爲字符串來確認這一點,看看實際內容你是否收到,並有選擇地把它扔到一個JSON驗證器中 –