كيفية تنزيل ملف WAV من الويب إلى موقع على iPhone باستخدام NSFileHandle و NsurlConnection؟
-
22-09-2019 - |
سؤال
أرغب في تنزيل ملف WAV من خدمة ويب ، وتخزينه على iPhone وأشغله باستخدام AvaudiOplayer. يبدو أن باستخدام NSFileHandle و NsurlConnection حلاً قابلاً للتطبيق عند التعامل مع ملفات كبيرة نسبيًا. ومع ذلك ، بعد تشغيل التطبيق في جهاز المحاكاة ، لا أرى أي ملف محفوظ ضمن الدليل المحدد (nShomedirectory/TMP). فيما يلي رمز الأساسي الخاص بي. أين أفعل خطأ؟ أي أفكار موضع تقدير!
#define TEMP_FOLDER [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"]
- (void)downloadToFile:(NSString*)name
{
NSString* filePath = [[NSString stringWithFormat:@"%@/%@.wav", TEMP_FOLDER, name] retain];
self.localFilePath = filePath;
// set up FileHandle
self.audioFile = [[NSFileHandle fileHandleForWritingAtPath:localFilePath] retain];
[filePath release];
// Open the connection
NSURLRequest* request = [NSURLRequest
requestWithURL:self.webURL
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
NSURLConnection* connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
#pragma mark -
#pragma mark NSURLConnection methods
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
{
[self.audioFile writeData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError*)error
{
NSLog(@"Connection failed to downloading sound: %@", [error description]);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[connection release];
[audioFile closeFile];
}
المحلول
NSFileHandle fileHandleForWritingAtPath:
يتطلب أن يكون الملف موجودًا بالفعل. كيف تقوم بإنشاء الملف؟
نصائح أخرى
اين
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
مندوب؟
هذا هو المكان الذي يجب أن تكتب/حفظ الملف.
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
هذا هو المكان الذي تقوم فيه بإلحاق البيانات التي تتلقاها.
لا تنتمي إلى StackOverflow