【发布时间】:2009-12-08 11:33:51
【问题描述】:
我已经定义了一个我所有插件都必须实现的协议。我还希望插件都使用某些字符串,例如 MyPluginErrorDomain。使用整数,这很容易在枚举中实现,但我不知道如何对字符串做同样的事情。通常,在类中我会定义
extern NSString * const MyPluginErrorDomain;
在 .h 文件和 .m 文件中:
NSString * const MyPluginErrorDomain = @"MyPluginErrorDomain";
但这在协议中效果不佳,因为每个插件都必须提供自己的实现,这违背了拥有常量的目的。
然后我尝试了
#define MYPLUGIN_ERROR_DOMAIN @"MyPluginErrorDomain"
但插件中的实现类似乎看不到#define。谁知道一个好的解决方案?
【问题讨论】:
-
删除 C,C++ 标签 - 这是客观的 C 问题
-
以 C++ 着称,另请参阅我对 Neil Butterworth 的有趣回答的评论。我仍然想知道是否也没有 C 解决方案,我不能成为 C 历史上第一个想要实现这一目标的人。
-
因为这些是 C 常量,所以这个 C 不需要被删除
标签: objective-c cocoa nsstring constants protocols