問題は、次のメッセージがあることです。
- ホストが見つかりません
- 指定されたホスト名を持つサーバーが見つかりませんでした
- ネットワークが利用できません
特に、2 番目のメッセージが一瞬表示されると、すべてが機能するようになります
だから私が欲しいのは、これらのメッセージを見つける方法とそれらを処理する方法を知り、それらの代わりに私のメッセージを置くか、Facebookアプリのようにそれらを表示する代わりに別のアクションを作成することです。ネットワークエラー"
これどうやってするの?
問題は、次のメッセージがあることです。
特に、2 番目のメッセージが一瞬表示されると、すべてが機能するようになります
だから私が欲しいのは、これらのメッセージを見つける方法とそれらを処理する方法を知り、それらの代わりに私のメッセージを置くか、Facebookアプリのようにそれらを表示する代わりに別のアクションを作成することです。ネットワークエラー"
これどうやってするの?
あなたのコードで到達可能性テストを使用しないのはなぜですか?
サンプル コードは、Apple Developer portal から見つけることができます。リンク : https://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html
コード:
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus internetStatus = [reachability currentReachabilityStatus];
if (internetStatus != NotReachable) {
// Do Your Stuff As Internet Available
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"We are unable to make a internet connection at this time. Please try again later" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
stringByReplacingOccurrencesOfString
エラーを確認し、メソッドを使用してカスタム エラー メッセージに変換できます。
NSString *str = @"server with a specified hostname could not be found";
if ([yourErrorMsg isEqualToString:str])
{
NSString *customError = [yourErrorMsg stringByReplacingOccurrencesOfString:str withString:@"Your Custom String"];
NSLog(@"New custom error = %@",customError);
}
最後に私は解決策を見つけました、そしてそれはこのようなものです
-(void)handleError:(NSError*)error{
SEL onerror = @selector(onerror:);
if(self.action != nil) { onerror = self.action; }
if([self.handler respondsToSelector: onerror]) {
if (error.code == -1003 || error.code == -1001 || error.code == -1004) { //check all kind of errors
[self send];
}else{
[self.handler performSelector: onerror withObject: error];
}
} else {
if(self.defaultHandler != nil && [self.defaultHandler respondsToSelector:onerror]) {
[self.defaultHandler performSelector:onerror withObject: error];
}
}
if(self.logging) {
NSLog(@"Error: %@", error.localizedDescription);
}
}