2017-02-16 28 views
3

Я пытаюсь загрузить актив, хранящийся внутри каталога активов я создал так:Не удается загрузить актив в рамках

if let asset = NSDataAsset(name: "packages") { 
    print("loaded") 
} else { 
    print("not loaded") 
} 

Это прекрасно работает, если я в проекте приложения, но НЕ работает, если я попал в рамки проекта. Что я могу сделать?

Я нашел это thread, в котором упоминается, что это невозможно. Это причина, почему у меня проблемы? Если да, есть ли способ обхода?

ответ

1

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

  1. Создать новую группу, которая будет содержать ваши ресурсы
  2. Перетащите файлы в эту группу

Теперь вы должны использовать Bundle для загрузки файлов:

let bundle = Bundle(identifier: <your.bundle.name>) 

Вы можете найти свое имя пакета, нажав на свою целевую структуру Framework, затем выберите нужный комплект. На вкладке «Общие» введите то, что находится в поле «Идентификатор пакета».

enter image description here

Это позволит вам получить доступ к любому файлу вашего комплекта.

Для каждого файла, загрузите путь к файлу:

let path = bundle.path(forResource: <filenameWitoutExtension>, ofType: <yourFileType>) 

Наконец, вы можете загрузить файл:

let data = NSData(contentsOfFile: path) 

Я не знаю, если это хорошая практика или нет, но по крайней мере, я могу получить доступ к ресурсам моей структуры. Надеюсь, это поможет.