iPhone dev: загрузите файл из папки ресурса

Я пишу приложение для iPhone с UIWebView, который должен отобразить различные файлы HTML, которые я имею в папке ресурса приложений. В XCode мой обзор проекта эти файлы HTML отображены как это:

dirA
|---> index.html 
|---> a1.html
|---> a2.html
|---> my.css
|---> dirB
      |---> b1.html
      |---> b2.html
|---> dirC
      |---> c1.html
      |---> c2.html

Эти ресурсы, где добавлено к проекту как таковому:

  • Проверенные "Объекты копии в целевую папку групп (в случае необходимости)".
  • Ссылочный тип: Значение по умолчанию.
  • Текстовое кодирование: Unicode (utf-8).
  • Рекурсивно создайте группы для любых добавленных папок.

Ссылки в моем HTML относительны, означая, что они похожи на это:

<a href="a1.html">a1</a>
<a href="a2.html">a2</a>
<a href="dirB/b2.html">b2</a>
<a href="dirC/c1.html">c1</a>

Для отображения index.html, когда приложение запускает, я использую следующий код:

NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

Это хорошо работает. Следующие ссылки от индексного файла также хорошо работают, пока файлы HTML, которые требуют, непосредственно находятся под dirA. Если ссылка следовала за точками в файл в подкаталоге, то didFailLoadWithError поймает ситуацию и сообщит, что требуемый файл не существует.

Кроме того,

[webView loadHtmlString:myHtml];

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

Таким образом, вопрос: Как я могу перейти по относительной ссылке в файл HTML в подкаталоге в моих ресурсах?

Я был на всем протяжении stackoverflow и остальной части труб в течение прошедших нескольких дней, пытаясь понять этого, но нигде не сделал, я сталкиваюсь с решением этой точной проблемы. Любое понимание вообще очень, очень ценилось бы!

Править: Yoohoo! Я понял это! Какая радость! Вот то, что я сделал:

  1. Импортированный мои ресурсы снова, выбор "Create folder references for any added folders" вместо "Рекурсивно создают группы для любых добавленных папок".
  2. Указанный корневой каталог для ресурса, как так: NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"dirA"];
19
задан thomax 29 May 2013 в 06:55
поделиться

2 ответа

Для создания папок в пакете приложений перетащите папку в Xcode и выберите радиокнопку: "Создавать ссылки на папки для любых добавленных папок".

13
ответ дан 30 November 2019 в 05:01
поделиться

Подкаталоги, которые вы используете в XCode, представляют собой группы, а не фактические папки. все ресурсы, скорее всего, переносятся в выходную папку. Если вы создаете фактические папки вне XCode, это может сработать. Попробуйте создать иерархию папок и файлов и перетащите их в XCode. Также проверьте папку сборки с помощью Finder, чтобы точно узнать, как XCode развертывает ваши файлы.

2
ответ дан 30 November 2019 в 05:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: