[РЕШЕНО] Не видит файл Realm в корневом каталоге проекта


#1

Доброго времени суток. Подскажите, что за дичь творится? Делаю программу, где данные хранятся в Realm. Сам реалм-файл сформировал отдельно, потом скопировал его в корневой каталог своего проекта. Из туториала знаю, что его надо открывать в режиме read-only, типа так:

let config = Realm.Configuration(                                                  
    fileURL: Bundle.main.url(forResource: "MyRealm", withExtension: "realm"),
    readOnly: true)
let realm = try! Realm(configuration: config)                                                                

Но вот проблема - xcode в упор не видит файл “MyRealm.realm” в корневом каталоге. “fileURL” для него - nil и программа вываливается с ошибкой исполнения.

Я вынес “fileURL” в отдельную переменную, рядом просто для примера скопировал в корень еще файл “Стишки-порошки.rtf” и попробовал найти путь к ним обоим:

let url = Bundle.main.url(forResource: "Стишки-порошки", withExtension: "rtf")
print (url)        
let url2 = Bundle.main.url(forResource: "MyRealm", withExtension: "realm")
print (url2)

В итоге xcode RTF-файл видит и печатает в консоли путь к нему, для realm - путь снова равен nil.

Для прикола переименовал realm файл в “х.х” - тоже не видит и путь nil, но зато как только переименовал в “х.rtf” - пусть сразу нашелся и в консоли пропечатался.

Как это вообще может быть? Надо где-то в настройках в xcode расширения файлов дополнительные прописывать, которые он не знает?


Сегодня сам нашел решение. Оказывается, что помимо того, что файл, который ты хочешь включить в проект, нужно перетащить в список файлов слева, нужно еще проследить, чтобы он отображался в разделе “Copy Bundle Resources” во вкладке “Build Phases” в настройках проекта. Когда туда зашел, то файл .rtf там отображался, а .realm - нет. Почему не знаю. Но после того, как я из левого списка файлов принудительно перетащил его в раздел “Copy Bundle Resources” жизнь сразу наладилась.

Всем хорошего кодинга )