Подтвердить что ты не робот

Доступ к файлу с использованием [NSBundle mainBundle] pathForResource: ofType: inDirectory:

У меня есть файл paylines.txt, добавленный внутри папки с именем TextFiles, который находится внутри папки Resources моего проекта iOS в Xcode.

Это код, который я использую для доступа к файлу:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"paylines" ofType:@"txt" inDirectory:@"TextFiles"];
NSLog(@"\n\nthe string %@",filePath);

Код печатает:

2011-06-07 14:47:16.251 slots2[708:207] 

the string  (null)
4b9b3361

Ответ 1

Ну, я обнаружил ошибку, которую я совершал, добавляя группу в проект вместо добавления реального каталога для более инструкций

Ответ 2

У меня тоже была такая же проблема. Решение, которое я нашел, (в xcode 4.x):

Перейти к: Цель → "Сформировать фазы" → "Ресурсы копий" Затем добавьте этот файл. Если этот файл уже добавлен, удалите его и добавьте снова.

очистить проект и RUN. Он работает.:)

Ответ 3

Попробуйте это, это работает для меня.

NSString *str = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"paylines.txt"];  

Для симулятора

NSURL *rtfUrl = [[NSBundle mainBundle] URLForResource:@"paylines" withExtension:@".txt"];

Ответ 4

Когда я перетаскиваю файлы, поле "Добавить в целевые объекты" по умолчанию не отмечено. Если я оставлю его без отметки, то у меня возникнет проблема. Исправьте его, удалив файлы, а затем перетащите их обратно, но обязательно отметьте "Добавить в целевые объекты". enter image description here

Ответ 6

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

введите описание изображения здесь

Ответ 7

Перейдите в "Target" → "Build Phases", выберите свою цель, выберите вкладку "Сборка фаз", нажмите "Добавить фазу сборки" и выберите "Добавить файлы копирования". Измените пункт назначения на "Каталог продуктов". Перетащите файл в раздел "Добавить файлы".

Ответ 8

В случае Mac OSX,

Перейдите к Целям → Построить фазы нажмите +, чтобы скопировать новые фазы сборки файлов. Выберите каталог продуктов и отпустите файл.

Очистите и запустите проект.

Ответ 9

После ответа @Neelam Verma или ответа @dawid, который имеет тот же конечный результат, что и @Neelam Verma, разница в том, что ответ @dawid начинается с перетаскивания файла в проект Xcode и @Neelam Verma ответ начинается с того, что файл уже является частью проекта Xcode, я все равно не смог получить NSBundle.mainBundle().pathForResource("file-title", ofType:"type") для поиска моего видеофайла.

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

 guard let path = NSBundle.mainBundle().pathForResource("testVid1", ofType:"mp4") else {
        print("Invalid video path")
        return
    }

Первоначально это было имя моего файла: testVid1.MP4, переименование видеофайла на testVid1.MP4 исправил мою проблему, поэтому, по крайней мере, строковый аргумент ofType чувствителен к регистру.

Ответ 10

Выберите Project/Specific Folder → Right Click → Добавить файлы в Project → Выберите файл, который вы хотите добавить.

Это сработало для меня.