Вопрос

Хорошо, я возвращаюсь к этой задаче.Мой XML-файл правильно загружен с моего веб-сервера с URL-адресом, указывающим на файл сервера, однако, когда я обнаруживаю, что сеть "недоступна", я просто указываю URL-адрес на локальный XML моего приложения и получаю следующую ошибку (Примечаниефайл является прямой копией того, что находится на сервере).

Я не могу найти подробное описание, но я думаю, что это говорит о том, что URL указывает на недоступное местоположение.Я храню этот ресурс не в том месте?Я думаю, я хочу, чтобы это было в домашнем каталоге / Библиотеке??

Отладочный вывод

loadMyXml: /var/mobile/Applications/950569B0-6113-48FC-A184-4F1B67A0510F/MyApp.app/SampleHtml.xml
2009-10-14 22:08:17.257 MyApp[288:207] Wah! It didn't work. Error Domain=NSXMLParserErrorDomain Code=5 "Operation could not be completed.   (NSXMLParserErrorDomain error 5.)" 
2009-10-14 22:08:17.270 MyApp[288:207] Operation could not be completed. (NSXMLParserErrorDomain error 5.)
Это было полезно?

Решение 3

По словам Дейва Делонга,

Это означает, что у него возникли проблемы с синтаксическим анализом вашего файла.

Я думаю, что это может быть ссылка на XSLT в XML, поскольку она указывает на веб-сервер.Я рассмотрю этот вопрос и вернусь к нему с улучшенным ответом.

Это был путь к файлу.Мой код даже близко не подходил к нужному местоположению - и мне не хватало завершающей буквы "s".Определение кода ошибки подразумевает "преждевременное завершение файла", что заставило меня безрезультатно обрезать мой файл.Затем я вернулся к основам и прошелся по файловой системе, чтобы найти свой файл.

Я отладил, используя NSFileManager для перехода к моему файлу, а затем проверил, что он доступен для загрузки с помощью contentsAtPath Путь к контенту способ.Я смог сбросить его с помощью NSLog().Как только я убедился, что файл был правильно сформирован и загружен в необработанном виде, я убедился, что мой NSURL был создан с тем же синтаксисом и методами.Затем он загрузился правильно.Теперь я могу загрузить либо "полнофункциональный" контент сетевого файла, либо локальный "образец" контента.

NSDirectoryEnumerator *dirEnumerator = [[NSFileManager defaultManager] enumeratorAtPath: NSHomeDirectory()];
NSString *something;
NSString *f;

while( something = [dirEnumerator nextObject] ) {
    f = [[[NSString alloc] initWithFormat: @"%@/%@", NSHomeDirectory(), something] autorelease];
    if( [f hasSuffix :@"two_cookies.xml"] ){
    NSData *nsData = (NSData*) [[NSFileManager defaultManager] contentsAtPath: f];
        NSLog(@"%@", nsData );
    }
}

Выходной сигнал

2009-10-22 00:47:40.147 MyApp[13843:20b] <?xml version="1.0" encoding="iso-8859-1"?>

P.S.Я надеюсь, что моя откровенность здесь будет полезна другим, когда они будут отлаживать свою обработку данных.

Другие советы

В том же ключе, что и принятый ответ, у меня была похожая проблема, потому что я загружал свой файл, используя:

[NSURL URLWithString:pathToFile];  // **Wrong**

Вместо этого это должно быть:

[NSURL fileURLWithPath:pathToFile];

Я тоже потратил много времени на изучение того, как мой файл может быть неправильно сформирован, может отсутствовать и т. д., прежде чем осознал, что это такая простая тонкая разница.

scroll top