Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查应用程序中的互联网连接是否会影响iPhone中的应用程序性能?_Iphone_Networking - Fatal编程技术网

检查应用程序中的互联网连接是否会影响iPhone中的应用程序性能?

检查应用程序中的互联网连接是否会影响iPhone中的应用程序性能?,iphone,networking,Iphone,Networking,我想检查我的应用程序中的网络连接。在我的应用程序中,目录页面中有八个按钮。单击按钮时,我必须检查网络连接,如果网络连接可用,则必须解析数据并显示在表视图中。在我的应用程序中,我主要是在web视图中解析和加载web url,并使用web服务。现在我已经完成了我的应用程序,但总体应用程序性能有点慢,所以我想,我已经检查了互联网连接的每个url函数。我还使用了可达性(来自Apple文档)代码。那么,我的应用程序将使用哪些代码来提高应用程序的性能呢 注: 在我的客户端反馈中,与在WIFI中运行的应用程序

我想检查我的应用程序中的网络连接。在我的应用程序中,目录页面中有八个按钮。单击按钮时,我必须检查网络连接,如果网络连接可用,则必须解析数据并显示在表视图中。在我的应用程序中,我主要是在web视图中解析和加载web url,并使用web服务。现在我已经完成了我的应用程序,但总体应用程序性能有点慢,所以我想,我已经检查了互联网连接的每个url函数。我还使用了可达性(来自Apple文档)代码。那么,我的应用程序将使用哪些代码来提高应用程序的性能呢

注:

在我的客户端反馈中,与在WIFI中运行的应用程序的性能相比,它的速度要快得多,而在3G(移动服务)中运行时,性能会慢一些。那么,在检查internet连接的同时,如何提高应用程序的性能呢?是否需要检查应用程序在WIFI或3G中的运行情况

我曾使用此代码检查我应用程序中的网络连接

NSStringEncoding enc;

NSError *error;

NSString *connected = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.apple.com"] usedEncoding:&enc error:&error];

if (connected == nil) {

        NSString * infoString = [NSString stringWithFormat:@"Please check your connection and try again."];

        UIAlertView * infoAlert = [[UIAlertView alloc] initWithTitle:@"Network Connection Error" message:infoString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

        [infoAlert show];

        [infoAlert release];


    } else {

        [self details:castString]; // Parsing method calls
  } 

那么,如何在检查internet连接的同时提高应用程序的性能呢?而且会影响应用程序性能吗?

因此,在3G上进行互联网连接检查(假设您做得正确)通常比WiFi需要更长的时间。这没什么新闻价值。因此,如果您的问题是:

“在3G上检查连接、下载和解析需要更长的时间”

…好吧,这里没有什么意外


老实说,如果你使用苹果的可达性代码“开箱即用”,这里可能会发生很多事情。你是怎么打可达性电话的?因为苹果的示例是同步进行的,所以如果您在主线程上调用它,那就是您的问题。

在对应用程序的性能做出任何假设之前,请务必对其进行分析,以了解真正的瓶颈所在。使用时间分析器、对象分配等工具来确定性能问题在应用程序中的位置。你可能会对你的发现感到惊讶。@Brad Larson,谢谢你的回复。我会查一查的。我可以知道制造、分析和使用仪器的区别吗。两者都是为了找到内存泄漏。我要问的是,有时在使用构建和分析时会清除所有泄漏,但使用仪器,它会显示一些泄漏。构建和分析是否足以检查内存泄漏?总是有一些澄清,所以请引导我。ThanksBuild和Analysis不能100%可信。这是因为,作为静态分析器,它可能无法正确报告代码中的所有泄漏。在许多情况下,它也可能错误地报告假阳性。因此,必须同时使用分析仪和仪器来查找并清除所有泄漏。Instruments将向您提供运行时发生的事情的全部细节,而analyzer只报告在编译时可能发现的问题,而没有实际运行您的应用程序。@Pugal-Instruments所做的远不止是查找内存泄漏。应用程序中的性能问题可能来自多个不同的来源,工具允许您从多个角度(大多数CPU消耗方法、大多数分配、泄漏、显示性能等)分析应用程序。最好不要只依靠一种方法来检查应用程序,因为这样你可能会错过一些东西。例如,堆快照可以找到从技术上讲不是泄漏的内存累积,但仍然会导致速度减慢和崩溃。@不可原谅-我不知道我还没有让Clang静态分析器返回假阳性。错误否定是常见的,尤其是对于实例变量,因为它只能真正解析在单个方法或函数的上下文中发生的事情。