如何使我的Objective C类方法仅对Swift类可见

时间:2017-08-28 12:13:17

标签: objective-c swift macros access-specifier

我有一个常见的常量文件,它将拥有我所有的目标C宏,以便在swift类中访问我的目标c宏我已计划实现下一篇文章中建议的方式。

Way To Access Objective C macros In Swift

基本上,建议的是创建.h& .m文件并添加返回我们想要访问的宏的公共方法.E.g

我有一个客观的C宏来获取自定义颜色

#define THEME_COLOR [UIColor colorWithRed:115.0/255.0 green:190.0/255.0 blue:123.0/255.0 alpha:1.0f] // this macro is not accessible inside swift class 

所以我正在创建一个方法如下

+ (UIColor *) themeColor {
   return THEME_COLOR;
}

现在在我的快速课程中,我可以访问此方法。由于上述方法是在全局类中声明的,因此我所有的目标C类也都在访问此方法。我想只有从swift类访问它才能访问此方法有没有办法做到这一点?还是有其他更好的方法?

任何建议或帮助都非常感谢。在此先感谢

1 个答案:

答案 0 :(得分:2)

不要将定义.h的{​​{1}}文件导入您的ObjC代码。把它放在你的Swift标题中。

(也就是说,我不会为此烦恼。我强烈建议你去掉各种宏并在任何地方使用这种方法。如果你不想摆脱它宏,我仍然不会将方法隐藏在ObjC中。方法通常是更好的解决方案。)