2012-07-15 73 views
0

我有一个mac应用程序,并希望隐藏它的资源。在Windows上,我只是创建了一个资源文件,但这些文件似乎并不存在于Mac上。所以我决定遵循this链接的建议。合并应用程序资源 - mac

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

问题是,CFDictionary对象不知道如何将自己归档,我不能使用Foundation对象,只能使用Core Foundation。有没有办法将CFDictionary转换为char*并保存?或者我将不得不单独保存密钥和值,稍后再读取它们以重新创建CFDictionary?如果是这样,我将如何转换CFData对象?

+0

我做了一个软件,只是为了选择AES256加密,在Xcode解密的开发工具是在应用程序内享受! http://www.macupdate.com/app/mac/55122/loot-locker – 2015-08-08 18:25:12

回答

1

我发现this interesting page这对于转换实用方法CFDictionaryCFData

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

我不知道这是否会与图像和声音的工作,虽然。您可能必须先将这些转换为CFData

+0

是的,我可以将它们转换为'CFData'。谢谢这就是我需要的! – rcplusplus 2012-07-16 03:47:51