注意:我宁愿不使用在编译时确定的任何东西,包括使用硬编码的字符串标识符调用 CFBundleGetBundleWithIdentifier()。
因为那是WET,对吧?
以下是如何使该解决方案干燥。
首先,在头文件中为此定义一些宏,如下所示:
#define MY_PLUGIN_BUNDLE_IDENTIFIER com.example.wiflamalator.photoshop-plugin
#define MY_PLUGIN_STRINGIFY(x) #x
#define MY_PLUGIN_BUNDLE_IDENTIFIER_STRING MY_PLUGIN_STRINGIFY(MY_PLUGIN_BUNDLE_IDENTIFIER)
将头文件导入到调用CFBundleGetBundleWithIdentifier
. 在该代码中,使用CFSTR(MY_PLUGIN_BUNDLE_IDENTIFIER_STRING)
.
然后,在 Xcode 中,将该文件设置为您的 Info.plist 前缀标头,或者(如果您已经有一个)#include
将其设置为该标头。最后,在 Info.plist 中,将包标识符设置为MY_PLUGIN_BUNDLE_IDENTIFIER
(当然是字符串值)。
现在您将包标识符写在一个位置(标头),C 预处理器从该位置将它放在它需要的所有位置,因此您可以使用它查找您自己的包CFBundleGetBundleWithIdentifier
。