Добавить и получить доступ к файлу необработанных двоичных двоичных объектов в проекте iOS
Как добавить двоичный файл / файл blob с некоторыми двоичными данными (не исполняемыми, не изображениями, не аудио, просто необработанными двоичными данными) в проект iOS, а затем получить к нему доступ в приложении как Data
или же uint8
массив?
Я пытался искать термины: встроенный двоичный файл (получил только ответы о исполняемых файлах), встроенный большой двоичный объект (но нашел только ответы о больших двоичных объектах SQLite)
2 ответа
Добавьте файл в структуру вашего проекта (первая вкладка левой панели), используя перетаскивание или щелкнув правой кнопкой мыши папку -> "Добавить файлы в..."
После этого файл должен автоматически встраиваться в ваше приложение. Вы можете проверить, перейдя в настройки своего проекта (нажмите на первый синий значок в структуре проекта), затем в разделе TARGETS выберите свое приложение и перейдите на вкладку "Build Phases". Там вы должны увидеть фазу "Копирование комплекта ресурсов". Убедитесь, что ваш файл является его частью, а если нет, добавьте его кнопкой +.
Тогда внутри вашего приложения это действительно просто. Если ваш файл называется foo.xyz
тогда делай
func loadFile() -> Data?
{
guard let fileURL = Bundle.main.url(forResource: "foo", withExtension: "xyz") else {
print("Failed to create URL for file.")
return nil
}
do {
let data = try Data(contentsOf: fileURL)
return data
}
catch {
print("Error opening file: \(error)")
return nil
}
}
Добавить файл просто - просто щелкните правой кнопкой мыши группу, в которую вы хотите добавить его, выберите Add files to xxx
и выберите свой файл. Убедитесь, что цель вашего приложения выбрана (вероятно, это будет по умолчанию), чтобы она была добавлена в этот пакет.
Доступ к этому двоичному файлу также довольно прост:
guard
let url = Bundle.main.url(forResource: "Filename", withExtension: "bin")
let data = Data(contentsOf: url) else {
print("Well, that didn't work")
}
print("Look - data: \(data)")