NSURLConnection下载很长

Mer*_*ryl 10 iphone objective-c nsurlconnection ios6

我在下载5 MB文件时遇到问题,在iPhone 5上使用iOS 6.1需要2分多钟.

使用相同iOS版本的iPhone 4S仅需10秒,两者都使用WiFi.

我尝试了不同的缓存策略和NSURLRequest的超时间隔,它没有改变,它仍然需要很长时间.下载是通过HTTP.

我正在使用NSURLConnection类,在下载这个"大"文件之前我正在下载另外两个.

不知道还有什么可以重要,减少时间.

提前致谢.

码:

@interface MyClass : NSObject <NSURLConnectionDelegate>
{
  @private id delegate;
  NSURLConnection *connection;
  NSMutableData* responseData;
  //...
}


#import "MyClass.h"

@implementation MyClass

-(void)getObj1:(id)delegateObj
{
   delegate = delegateObj;

   NSString *url = @"...";

   NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:120.0];

   connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

   if(connection)
   {
      responseData = [NSMutableData data];
   }
}

-(void)getObj2:(*String)somesString
{

   NSString *url = @"...";

   NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:120.0];

   connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

   if(connection)
   {
    responseData = [NSMutableData data];
   }
}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{ 
    //....
}


-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
   [responseData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
   if(firstRequest)
   {
      //save data from first request and set responseData clear
      [self getObj2:@"..."];
   }
}
Run Code Online (Sandbox Code Playgroud)

和其他没有什么特别的,我希望这就足够了

我发现这篇文章https://devforums.apple.com/message/754875#754875但对我来说仍然无法正常工作.但是现在我更好地了解这种奇怪的情况.

小智 0

你有没有尝试过AFNetworking?这是包装纸NSURLConnection。我不确定它是否会帮助您获得更快的下载速度,但它确实会给您带来优势NSURLConnection