在Objective C Header中访问Swift类

C6S*_*ver 4 xcode objective-c swift

我一直在混合使用Swift和Objective C,但是我遇到了从Objective C的HEADER文件访问Swift类的问题.我可以在.m文件中成功完成.

在.h文件中,我导入了Xcode生成的文件,其格式为"Appname-Swift.h".但是,这样做我得到的信息是找不到该文件.我可以在我的.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
Run Code Online (Sandbox Code Playgroud)

上面的MapVC是一个Swift类.

OOP*_*Per 9

移至#import "MyApp-Swift.h".m文件.

并将您的.h文件设为:

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

@interface SelectedContactsVC : UIViewController

@property (nonatomic,strong) MapVC *mapVC;

@end
Run Code Online (Sandbox Code Playgroud)

Swift无法生成"MyApp-Swift.h",如果它是从Objective-C头导入的,那可能是相互依赖的东西.

  • 是的,它告诉编译器该符号实际上是一个类,但没有提供其他信息.在大多数情况下,它足以避免相互依赖. (3认同)