如何将二进制/ blob 文件与一些二进制数据(不可执行,而不是图像,而不是音频,只是原始二进制数据)添加到iOS项目,然后在应用程序中访问它一个Data
或uint8
数组?
我尝试搜索术语:嵌入式二进制文件(只获得有关可执行文件的答案),嵌入式blob(但只找到有关SQLite blob的答案)。
答案 0 :(得分:2)
使用拖放或右键单击文件夹将文件添加到项目结构(左侧面板的第一个选项卡) - > “将文件添加到...”
之后该文件应自动嵌入到您的应用中。您可以通过转到项目设置进行检查(单击项目结构中的第一个蓝色图标),然后在TARGETS下,选择您的应用程序并转到“构建阶段”选项卡。在那里你应该看到一个“复制捆绑资源”阶段。确保您的文件是其中的一部分,如果没有,请使用+按钮添加它。
然后在你的应用程序中,它非常简单。如果您的文件名为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
}
}
答案 1 :(得分:1)
添加文件很简单 - 只需右键单击要添加的组,选择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)")