添加二进制blob原始数据文件并将其访问到iOS项目

时间:2017-06-27 13:34:05

标签: ios objective-c swift xcode blob

如何将二进制/ blob 文件与一些二进制数据(不可执行,而不是图像,而不是音频,只是原始二进制数据)添加到iOS项目,然后在应用程序中访问它一个Datauint8数组?

我尝试搜索术语:嵌入式二进制文件(只获得有关可执行文件的答案),嵌入式blob(但只找到有关SQLite blob的答案)。

2 个答案:

答案 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)")