2014-03-27 54 views
0

我正在使用AFNetworking發出網絡請求。請求失敗塊failure:^(AFHTTPRequestOperation *operation, NSError *error)在兩種情況下被調用,AFNetworking識別失敗原因:用戶取消請求或網絡故障

  1. 當請求由於網絡連接問題而失敗時。
  2. 當我取消正在進行的請求。

在故障塊代碼中,我無法區分上述2個原因。只有在網絡問題導致請求失敗時,我需要區分以提供自定義通知。

如何正確識別請求失敗的原因?

回答

1

我相信error.code價值將在方案2

這裏等於NSURLErrorNotConnectedToInternet(-1009)在方案1和NSURLErrorCancelled(-999)是一個例子:

failure:^(AFHTTPRequestOperation *operation, NSError* error) {     
    if(error.code == NSURLErrorNotConnectedToInternet) { 
     // handle scenario 1 
    } else if(error.code == NSURLErrorCancelled) { 
     // handle scenario 2 
    } else { 
     // handle unexpected errors 
    }   
} 
+2

這不爲這個問題提供一個答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 –

+0

更好@PeterFoti? –