代码之家  ›  专栏  ›  技术社区  ›  Parth Bhatt

检查互联网连接时,iPhone应用程序崩溃

  •  1
  • Parth Bhatt  · 技术社区  · 14 年前

    在我的iPhone应用程序中,我需要检测互联网连接的可用性。

    所以我引用了苹果公司的“可达性”项目中的一些文件。

    链接如下:

    http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

    我创建了一个新项目并在viewwill中实现了下面的代码,但是应用程序崩溃了。

    我包括了苹果演示项目中的Reachability.h,Reachability.m。

    我还包括系统配置框架。

    当互联网运行时,应用程序运行良好。但当互联网不工作时,应用程序崩溃。

    即使我检查了控制台,但控制台中没有显示任何通知或错误。

       Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];
    
    NetworkStatus internetStatus = [r currentReachabilityStatus];
    if ((internetStatus == ReachableViaWiFi) || (internetStatus == ReachableViaWWAN))
    {
        UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"Internet Connection" message:@"Available" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [myAlert show];
        [myAlert release];
        }
    else
    {
        UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"This app require an internet connection via WiFi or cellular network to work." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [myAlert show];
        [myAlert release];
        }
    

    坠机的原因是什么?

    我该怎么办?

    谢谢!!

    3 回复  |  直到 14 年前
        1
  •  4
  •   DarkDust    14 年前

    你发布的警报太多了。首先,你知道 autorelease 再加上 release ,太多了。把这两个拿走 [myAlert release]; 它应该能起作用。

        2
  •  1
  •   Parth Bhatt    14 年前

    这里可能是由于超时,您的代码无法在模拟器上工作的情况。但试着在设备上运行它。也试着按照@greg正确的说法调试代码。因为这个功劳应该归于@greg。希望这有帮助。如果有用的话告诉我。

        3
  •  0
  •   greg    14 年前

    你的问题出在你的代码中的其他地方,因为你提供的代码以及复制可达性。[mh]到一个新的Xcode项目中似乎没有崩溃。当你的应用程序崩溃时 必须 在控制台中记录一些信息。如果真的什么都没有,在“startup”方法中设置一个断点( viewWillLoad , viewDidLoad , AppDelegate 一个接一个地检查直到你发现问题。