iOS 6.1 の iPhone 5 で 5 MB のファイルをダウンロードするのに 2 分以上かかるという問題に直面しています。
同じ iOS バージョンの iPhone 4S を使用すると、わずか 10 秒しかかかりません。どちらも WiFi を使用しています。
別のキャッシュ ポリシーと NSURLRequest のタイムアウト間隔を試しましたが、何も変わりませんでした。まだ時間がかかっています。ダウンロードは HTTP 経由です。
私はNSURLConnectionクラスを使用しています。この「大きな」ファイルをダウンロードする前に、他に 2 つのファイルをダウンロードしています。
時間を短縮するために、他に何が重要なのかわかりません。
前もって感謝します。
コード:
@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:@"..."];
}
}
その他は特に何もなければ、これで十分だと思います
この投稿https://devforums.apple.com/message/754875#754875を見つけましたが、それでもうまくいきません。しかし今、私はこの奇妙な状況をよりよく理解しています。