2016-07-10 51 views
2

我一直在混合Swift和Objective C很好,但我有問題從ObjectiveC的頭文件中獲得對Swift類的訪問權限。我可以在.m文件中成功執行。訪問目標C中的Swift類標題

在.h文件中,我導入格式爲「Appname-Swift.h」的Xcode生成的文件。但是,在這樣做時,我收到消息說沒有找到該文件。我可以在沒有問題的.m文件中執行相同的導入操作。然而,我在.h文件中需要它,因爲我引用了一個需要使用公共API訪問的Swift類。

如何從Objective C的.h部分使用Swift類?

實施例:

#import <UIKit/UIKit.h> 
#import "MyApp-Swift.h" 

@interface SelectedContactsVC : UIViewController 

@property (nonatomic,strong) MapVC *mapVC; 

@end 

以上MapVC是夫特類。

回答

3

#import "MyApp-Swift.h"移動到.m文件。

,使您的.h文件:

#import <UIKit/UIKit.h> 
@class MapVC; 

@interface SelectedContactsVC : UIViewController 

@property (nonatomic,strong) MapVC *mapVC; 

@end 

斯威夫特不能產生 「MyApp的-Swift.h」,如果它是從Objective-C的頭進口,那種相互依存的事情也許。

+0

謝謝,這工作!以這種方式添加「@class」有點像前向聲明嗎? – C6Silver

+2

是的,它教會編譯器該符號實際上是一個類,但不提供其他信息。在大多數情況下,足以避免相互依賴。 – OOPer

+0

太棒了!正是我正在尋找的東西。謝謝! – CalZone