0

我有一个 mac 应用程序,想隐藏它的资源。在 Windows 上,我只是制作了一个资源文件,但在 Mac 上似乎不存在这些文件。所以我决定遵循这个链接的建议。

在另一个预先准备资源的应用程序中,我要做的是获取我所有的资源(文本文件、图像、声音文件等)并将它们各自转换为CFData对象。然后我将它们存储在一个CFDictionary以文件名为键的对象中。之后,我要将字典保存到文件中。

问题是,CFDictionary 对象不知道如何归档自己,而且我不能使用 Foundation 对象,只能使用 Core Foundation。有没有办法将 a 转换CFDictionary为 achar*并保存它?或者我是否必须单独保存键和值并稍后阅读它们以重新创建CFDictionary?如果是这样,我将如何转换CFData对象?

4

1 回答 1

1

我发现了这个有趣的页面CFDictionary,它有一个将 a 转换为的实用方法CFData

inline CFDataRef makeCFData(CFDictionaryRef dictionary)
{
    return CFPropertyListCreateXMLData(NULL, dictionary);
}

不过,我不知道它是否适用于图像和声音。您可能必须CFData先将它们转换为 s。

于 2012-07-15T18:48:06.863 回答