我有一个常见的常量文件,它将拥有我所有的目标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类访问它才能访问此方法有没有办法做到这一点?还是有其他更好的方法?
任何建议或帮助都非常感谢。在此先感谢
答案 0 :(得分:2)
不要将定义.h
的{{1}}文件导入您的ObjC代码。把它放在你的Swift标题中。
(也就是说,我不会为此烦恼。我强烈建议你去掉各种宏并在任何地方使用这种方法。如果你不想摆脱它宏,我仍然不会将方法隐藏在ObjC中。方法通常是更好的解决方案。)