【问题标题】:iPhone app crashes while checking internet connectivityiPhone 应用程序在检查互联网连接时崩溃
【发布时间】:2010-11-26 12:14:08
【问题描述】:

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

所以我引用了 Apple 的“Reachability”项目中的一些文件。

链接如下:

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

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

我包含了来自 Apple 演示项目的 Reachability.h、Reachability.m。

我还包括了 SystemConfiguration 框架。

当互联网工作时,应用程序可以正常工作。但是当互联网不工作时应用程序崩溃。

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

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

崩溃的原因是什么?

我该怎么办?

谢谢!!

【问题讨论】:

  • 你检查过控制台,检查崩溃的原因吗?

标签: iphone cocoa-touch ios4 reachability


【解决方案1】:

您过度释放警报。首先,您执行autorelease,然后再执行release,这太过分了。只需删除两个[myAlert release]; 即可。

【讨论】:

  • 我试过了,但还是不行。它仍然崩溃。我该怎么办?
  • 我已经删除了它,但它仍然崩溃。
【解决方案2】:

在这种情况下,您的代码可能由于超时而无法在模拟器上运行。但是尝试在设备上运行它。还可以尝试按照@greg 正确的说法调试代码。对于那个信用应该去@greg。希望这可以帮助。让我知道它是否有效。

【讨论】:

  • 非常感谢朱莉娅的意见。看起来好像是模拟器上的超时问题。这是一个很好的观察。 :)
【解决方案3】:

您的问题出在代码的其他地方,因为您提供的代码以及将 Reachability.[mh] 复制到新的 Xcode 项目中似乎可以正常工作而不会崩溃。当您的应用崩溃时,它必须在控制台中记录某种信息。如果真的什么都没有,请在“启动”方法中设置断点(viewWillLoadviewDidLoadAppDelegate 东西并逐行执行,直到发现问题为止。

【讨论】:

  • 嗨,格雷格,我试过调试。虽然我在模拟器上进行调试,但它工作正常,但只要我删除断点并正常运行,它就会再次崩溃。所以似乎是一个超时问题。正如朱莉娅所说,当我在设备上测试相同的代码时它运行良好,所以它看起来像模拟器上的超时问题。无论如何,感谢您的大力帮助! :) :)
猜你喜欢
  • 1970-01-01
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 2014-05-21
  • 1970-01-01
相关资源
最近更新 更多