Не удается найти файл .js в моем mainBundle?
Это сводит меня с ума, поскольку я не могу понять, что происходит в мире. Я загружаю файлы из основного пакета все время, файлы xml, html файлы и т.д. Но теперь я пытаюсь получить содержимое файла javascript, но он никогда не сможет его найти. Я использую:
NSData *jsData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"global" ofType:@"js"]];
if (jsData) {
NSLog(@"%@", jsData);
} else {
NSLog(@"Can't find file");
return;
}
Даже проверка строки [[NSBundle mainBundle] pathForResource: @ "global" ofType: @ "js" ] string возвращает значение null.
Мой файл globaly.js находится в папке Мои ресурсы, точное местоположение, где находятся мои другие файлы, которые полностью работают с использованием вышеуказанного метода.
Почему он не может найти мой js файл?
Ответы
Ответ 1
Насколько я помню, Xcode не любит файлы с расширением *.js. Я имею в виду, что он не добавил его в пакет приложений. Просто переименуйте файл в *.txt, и все будет в порядке.
И правильным ответом будет: Ваша потребность переместить ваши js файлы из фазы сборки сборных источников для копирования ресурсов Bundle. Поскольку Xcode считает, что js файлы являются исходными файлами, их следует скомпилировать, а затем добавить в качестве ресурсов.
Ответ 2
По умолчанию Xcode может обрабатывать файлы с расширением "js" в качестве исходных файлов и добавлять их на фазу сборки источников компиляции, а не в фазу сборки ресурсов копирования Bundle.
Просто переместите ваши файлы "js" на фазу сборки "Ресурсы копирования", и они будут скопированы в ваш пакет приложений. Являются ли они в группе с именем Ресурсы в иерархии проекта, несущественны; это всего лишь организационный инструмент, он не имеет смысла в Xcode. Это фазы сборки под целевыми объектами, которые фактически выполняют работу по сборке продукта.
Ответ 3
Это не значит, что Xcode не нравится .js файлам. Он рассматривает их еще иначе, мы бы не использовали .js файлы для javascriptexecution в webview.
Просто нам нужно добавить файл .js в фазу сборки ресурса Copy Bundle по целям. Просто перетащите ваш .js файл в фазу сборки ресурса копии. Таким образом, Xcode рассмотрит этот файл, так как теперь он находится в фазе пупидов.
Я думаю, что если мы не сделаем вышеуказанный шаг, мы получим предупреждение о создании кода. Я точно не помню предупреждение, но он просто сказал, что Xcode не может распознать файл .js.
Как только файл будет добавлен в фазу сборки, вы можете использовать
NSData * jsData = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @ "global" ofType: @ "js" ]];
Ответ 4
У меня была та же проблема.
Для решения этой проблемы я выполнил следующие шаги:
Вышеуказанные 2 шага решили мою проблему.
Ответ 5
иногда xCode не реализует файл в вашем проекте и не связывает все правильно. попробуйте удалить .js файл и снова добавить его.
Кроме того, кажется, что вы упоминаете 2 разных имени файла, activity.js и global.js