2017-08-28 37 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。我正在開發已經開發的項目,它有幾個宏,轉換每一件事情都是費時的工作。有幾個人在這個代碼庫中工作,所以沒有限制它會使代碼在這段時間內笨拙 –

相關問題