2012-12-07 5 views
6

मैं वर्तमान में एक आईपैड आईओएस 6 एप्लीकेशन विकसित कर रहा हूं जो एसिंक डाउनलोड का उपयोग करता है। प्रगति जानकारी प्राप्त करने के लिए मैंने प्रतिनिधि NSURLConnectionDownloadDelegate का उपयोग किया। डाउनलोड और प्रगतिNSURLConnectionDownloadDelegate destinationURL

– connection:didWriteData:totalBytesWritten:expectedTotalBytes: 

काम करता है ठीक से प्राप्त किया।

हालांकि एक बार डाउनलोड समाप्त हो गया है, मुझे नहीं पता NSURLdestinationURL delegatemethod

– connectionDidFinishDownloading:destinationURL: 

DESTINATIONURL स्ट्रिंग में प्राप्त द्वारा प्रदान से बाहर डेटा निकालने के लिए कैसे की तरह "/private/var/mobile/Applications/7CB3B194-9E79-4F0B-ACFD-7B87AA8C7BAF/tmp/filename.mp4"

लग रहा है

फिर मैं दिए गए NSURL से डेटा निकालने का प्रयास करता हूं:

NSData *data = [[NSData alloc] initWithContentsOfURL:destinationURL]; 

डेटा तथापि खाली है ...

NSLog(@"data Size: %@", data.length);  //prints out 0 

किसी NSURLConnectionDownloadDelegate उपयोग करके एक ही मुद्दा है? किसी भी विचार को हल करने के लिए कैसे?


संपादित करें: मैं पहली बार फ़ाइल की प्रतिलिपि करने, और फिर [NSData initWithContentsOFFile] का उपयोग के रूप में सुझाव कोशिश की, लेकिन डेटा का आकार अभी भी 0.

- (void) connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL 
{ 

[[NSFileManager defaultManager] copyItemAtPath:destinationURL.path toPath:DEST_PATH error:nil]; 

NSData *data = [[NSData alloc] initWithContentsOfFile:DEST_PATH]; 

NSLog(@"data Size: %i", data.length); //still returns 0.. 
} 

है EDIT2: मैं NSData निकाल सकते हैं NSURLConnection की विधि का उपयोग करते समय। हालांकि इस तरह, मैं डाउनलोड की प्रगति निर्धारित करने में सक्षम नहीं कर रहा हूँ ...

[NSURLConnection sendAsynchronousRequest:theRequest queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){ 
if (data){ 
NSLog(@"Size of the data: %i Bytes(s)", data.length); //works fine 
[data writeToFile:DEST_PATH atomically:YES]; 
//From this point i can use the file at DEST_PATH 

NSLog(@"Succeeded!"); 
} 
else if (error) 
NSLog(@"%@",error); 
}]; 
+0

क्या आप अपनी सामग्री पथ पर फ़ाइल की प्रतिलिपि और वहाँ यह खोलने का प्रयास करता है, तो? – jimpic

+0

इस उत्तर का प्रयास करें: http://stackoverflow.com/questions/12582849/nsurlconnectiondownloaddelegate-expectedtotalbytes-zero-in-ios-6 – emrys57

+0

क्या आपने पिछली टिप्पणी का उत्तर देखा है? – emrys57

उत्तर

0

जांचें कि फ़ाइल मौजूद है या नहीं। मुझे एक ही समस्या है और मुझे NSURLConnectionDataDelegate का उपयोग करना होगा और डेटा को मैन्युअल रूप से सहेजना होगा और यही कारण है कि: कुछ फ़ाइल एक्सटेंशन से संबंधित NSURLConnectionDownloadDelegate में कोई त्रुटि है।

इसके अलावा, आप एक ही सवाल यहाँ के जवाब देख सकते हैं: NSURLConnectionDownloadDelegate file issue

+1

हां शायद NSURLConnectionDownloadDelegate के साथ कोई समस्या है।मैंने प्रतिनिधि को NSConnectionDataDelegate के साथ बदल दिया, अब मैं एक फ़ाइल async डाउनलोड करने में सक्षम हूं और अभी भी डाउनलोड की प्रगति प्रदर्शित कर रहा हूं। – andre

0

/निजी/var/मोबाइल/आवेदन/7CB3B194-9E79-4F0B-ACFD-7B87AA8C7BAF/tmp/फ़ाइल नाम। एमपी 4

एक पथ है, एक यूआरएल नहीं है। InitWithContentsOfFile का प्रयास करें: इसके बजाए।

संबंधित मुद्दे

 संबंधित मुद्दे