Iphone “如何更改错误”;“找不到主机”;到我的自定义消息错误?

Iphone “如何更改错误”;“找不到主机”;到我的自定义消息错误?,iphone,ios,xcode,general-network-error,Iphone,Ios,Xcode,General Network Error,问题是我有以下信息: 找不到主机 找不到具有指定主机名的服务器 网络不可用 特别是它显示的第二条信息,一秒钟之后,一切都开始工作了 因此,我想知道如何找到这些MSG,如何处理它们,并将我的消息放在那里而不是放在它们身上,或者只是做另一个动作,而不是像facebook应用程序那样显示它们,当连接断开时,它会显示一个带有“网络错误”标签的红色警报 我该怎么做?为什么不在代码中使用可达性测试 您可以在Apple开发者门户网站上找到。 链接: 代码: Reachability *reachabil

问题是我有以下信息:

  • 找不到主机
  • 找不到具有指定主机名的服务器
  • 网络不可用
特别是它显示的第二条信息,一秒钟之后,一切都开始工作了

因此,我想知道如何找到这些MSG,如何处理它们,并将我的消息放在那里而不是放在它们身上,或者只是做另一个动作,而不是像facebook应用程序那样显示它们,当连接断开时,它会显示一个带有“网络错误”标签的红色警报


我该怎么做?

为什么不在代码中使用可达性测试

您可以在Apple开发者门户网站上找到。 链接:

代码:

 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);
}

}

我的项目中有大约50个xib和实现文件,我如何才能为整个应用程序执行它,是在应用程序代理中吗?是的,你可以在应用程序代理中执行它
使用午餐选项完成。我已经将它放在应用程序代理中,但当它发生故障时,应用程序崩溃了!!发布您的崩溃日志,这样就很容易找到问题。12月21日18:22:31 IGHASS iPhone kbd[57]:-[TIXPCDataTransport\u handleForPurpose:withReplyBlock:]无法获取数据源的目的=\uu TirdTab模型错误描述实际上不需要向最终用户显示。您必须检查错误并设计您自己的错误对象OK,但我如何检查错误??这就是问题所在,我可以在这里找到它,以便控制进程我的webservice响应中有error.code,但它没有我想要的错误,它是否在reachability.m文件中?发生了什么事..首先你接受了我的答案,现在删除了接受。。为什么?