سؤال

انا املك NSURL الكائن الذي يعطيني مسار ملف محلي (في مجلد المستندات). أريد أن أملك NSData كائن مع محتويات هذا الملف. حاول استخدام dataWithContentsOfURL: ولكن هذا فشل. أعرف أن الملف موجود لأن iPhone SDK إرجاع المسار.

يمكن للشخص من فضلك قل لي كيف يمكنني الحصول على NSData كائن من URL من ملف محلي؟

شكرا.

هل كانت مفيدة؟

المحلول

// Given some file path URL: NSURL *pathURL
// Note: [pathURL isFileURL] must return YES
NSString *path = [pathURL path];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];

نصائح أخرى

للحصول على هذا العمل الذي تحتاج فقط إلى القيام به:

NSURL *imgPath = [[NSBundle mainBundle] URLForResource:@"search" withExtension:@"png"];
NSString*stringPath = [imgPath absoluteString]; //this is correct  

//you can again use it in NSURL eg if you have async loading images and your mechanism 
//uses only url like mine (but sometimes i need local files to load)
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:stringPath]];
UIImage *ready = [[[UIImage alloc] initWithData:data] autorelease];

تأكد من أن عنوان URL المحلي الخاص بك يبدأ ب "ملف: //"ثم عليك فقط القيام بذلك:

 NSData *fileData = [NSData dataWithContentsOfFile:fileURL.path];

ل SWIFT3 وجدت إجابة من عنوان URL التالي مفيدة

(كنت أتناول المسار التالي، بعد التقاط الصورة باستخدام البرنامج المساعد PhoneGap

ملف: ///var/mobile/containers/data/application/b64b06de-7976-45cf-9be2-661f0f309a06/tmp/abcded.jpg)

https://stackoverflow.com/a/41043447/6383908.

إذا دع VideOrl = URL (سلسلة: UrlString)، دع VideoData = TRY؟ البيانات (Contentsof: VideoRL) {// إضافة رمز Alamofire هنا}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top