मुझे 5 एमबी फ़ाइल डाउनलोड करने में समस्या का सामना करना पड़ रहा है, आईओएस 6.1 के साथ आईफोन 5 पर 2 मिनट लगते हैं।NSURLConnection बहुत लंबे समय से डाउनलोड
आईओएस 4 एस का उपयोग उसी आईओएस संस्करण के साथ करते हुए इसमें केवल 10 सेकंड लगते हैं, दोनों वाईफाई का उपयोग कर रहे हैं।
मैंने NSRLRequest के विभिन्न कैश नीति और टाइमआउट अंतराल की कोशिश की है, यह कुछ भी नहीं बदला है, यह अभी भी काफी समय ले रहा है। डाउनलोड 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:@"..."];
}
}
और कुछ विशेष के बिना अन्य लोगों, मुझे आशा है कि यह पर्याप्त
हो जाएगा मैं इस पोस्ट https://devforums.apple.com/message/754875#754875 पाया है, लेकिन अभी भी मेरे लिए ठीक काम नहीं करता। हालांकि अब मैं इस अजीब स्थिति को बेहतर ढंग से समझता हूं।
आपका कोड महत्वपूर्ण है। यदि आप पोस्ट बना सकते हैं और अनुरोध कैसे शुरू कर सकते हैं, और प्रतिनिधि विधियां पोस्ट कर सकते हैं। –
कोई विचार? हो सकता है कि मेरे संपादन से यह लिंक मदद करेगा, मैं विचारों से बाहर हूं – Meryl
_two_ अलग-अलग डाउनलोड करने के लिए आपको अपने 'MyClass' की _two_ ऑब्जेक्ट्स बनाना चाहिए। आप जल्दी से इवर को भ्रमित कर सकते हैं। साथ ही, सुनिश्चित करें कि आप उस थ्रेड पर [[NSURLConnection alloc] init ...] को आमंत्रित करते हैं जहां आप प्रतिनिधि को निष्पादित करना चाहते हैं। संभवतः मुख्य धागा - अन्यथा आपको यह जानने की आवश्यकता है कि उस उद्देश्य के लिए द्वितीयक धागा कैसे सेट करें, जो थोड़ा मुश्किल है। – CouchDeveloper