سؤال

فعلت هذا عدة مرات من قبل ولكن الآن فشل.أريد الوصول إلى ملف يتم شحنه داخل تطبيقي.

NSString* path = [[NSBundle mainBundle] pathForResource:@"information" ofType:@"xml"];

المرتجعات

/Users/eldude/Library/Application Support/iPhone Simulator/7.0.3/Applications/5969FF96-7023-4859-90C0-D4D03D25998D/App.app/information.xml

وهو الصحيح-فحص في محطة وكل ذلك.ومع ذلك ، فإن محاولة تحليل المسار تفشل

    NSURL* fileURL = [NSURL URLWithString:path];

    NSXMLParser *nsXmlParser = [[NSXMLParser alloc] initWithContentsOfURL:fileURL];

    [nsXmlParser setDelegate:self];

    if(![nsXmlParser parse]){
        NSError* e = nsXmlParser.parserError;
        NSLog(@"ERROR parsing XML file: \n %@",e);
        self = NULL;
    }

مع

Error Domain=NSCocoaErrorDomain Code=-1 "The operation couldn’t be completed. (Cocoa error -1.)" UserInfo=0xb9256f0 {NSXMLParserErrorMessage=Could not open data stream}

أفكار أي شخص?

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

المحلول

عناوين المواقع ملف وعناوين المواقع شبكة مختلفة.
من وثائق أبل:

هام:لإنشاء كائنات نسورل لمسارات نظام الملفات ، استخدم
fileURLWithPath:isDirectory:
أو فقط
fileURLWithPath:

مثال:

NSString *filePath = @"path/file.txt";
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
NSLog(@"fileURL: %@", [fileURL absoluteURL]);

NSURL *netURL = [NSURL URLWithString:filePath];
NSLog(@"netURL: %@", [netURL absoluteURL]);

إخراج نسلوغ:
فيلورل:ملف:/ / / مسار / ملف.النص
نتورل:مسار / ملف.النص

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