Я определил протокол, который должны реализовать все мои плагины. Мне также хотелось бы, чтобы все плагины использовали определенные строки, например MyPluginErrorDomain. С целыми числами это довольно легко достигается в перечислении, но я не могу понять, как сделать то же самое со строками. Обычно в классах я определял бы
extern NSString * const MyPluginErrorDomain;
в файле .h и в файле .m:
NSString * const MyPluginErrorDomain = @"MyPluginErrorDomain";
но это не очень хорошо работает в протоколе, потому что тогда каждый плагин должен будет предоставить свою собственную реализацию, которая побеждает цель иметь константу.
Затем я попробовал
#define MYPLUGIN_ERROR_DOMAIN @"MyPluginErrorDomain"
но классы реализации в подключаемом модуле, похоже, не видят #define. Кто знает хорошее решение?