从Objective C中的Swift类继承

Bas*_*Zen 19 inheritance objective-c ios swift

我在Xcode 7项目中成功地混合和匹配Obj-C和Swift.但是,我似乎无法弄清楚在Objective C类中如何从Swift类继承(是的,我知道将Swift类声明@objc为可见性).在这种情况下,所需的Swift超类MySwiftViewController是其子类UIViewController.现在,在Obj-C中,我直接继承UIViewController并且无法访问我添加的功能MySwiftViewController.

这是我的理解:

- 要将Obj-C类声明为继承某些东西,它必须位于':'之后的.h文件中:

#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@end
Run Code Online (Sandbox Code Playgroud)

- 为了使Swift类可见,即#import:

#import "MyProject-Swift.h"
Run Code Online (Sandbox Code Playgroud)

但是,您无法将Swift自动生成的桥接头导入Obj-C .h文件.您也无法使用前向声明不透明的超类@class.那么,这可能吗?怎么样?

Edw*_*ang 46

不幸的是,不可能在Objective-C中继承Swift类.直接来自文档:

您不能在Objective-C中子类化Swift类.

有关使用Objective-C可以访问和不能访问的内容的更多详细信息,请参阅Apple的互操作性指南.

  • 这是文档的链接 - https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/Migration.html (2认同)