2017-08-28 36 views
0

我有一个常见的常量文件,它将拥有所有我的目标C宏,以便在swift类中访问我的目标c宏我计划实现在以下文章。如何使我的Objective C类方法仅对Swift类可见

Way To Access Objective C macros In Swift

基本上,什么是建议创建的.h & .m文件,并添加其返回宏公共方法,我们想访问too.Eg

我有一个目标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; 
} 

现在在我的swift类中,我可以访问这个方法。由于上述方法是在全局类中声明的,所有我的目标C类也都访问这个方法。我想只有在从swift类访问这个方法时才有权限访问这个方法吗?有什么办法可以做到吗?还是有其他更好的方法?

任何建议或帮助非常感谢。提前致谢

回答

2

不要将定义为+themeColor.h文件导入到您的ObjC代码中。只需将它放在您的桥接标题中即可。 (这就是说,我不会为此烦恼,我强烈建议只是摆脱宏,并使用方法无处不在,如果你不想摆脱宏观,我仍然wouldn不会从ObjC隐藏的方法。方法是一个更好的解决方案。)

+0

你的答案做到了!谢谢,@ Rob Napier。我正在开发已经开发的项目,它有几个宏,转换每一件事情都是费时的工作。有几个人在这个代码库中工作,所以没有限制它会使代码在这段时间内笨拙 –

相关问题