我在 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
-- 使 Swift 类可见,即#import
ed:
#import "MyProject-Swift.h"
但是,您无法将 Swift 自动生成的桥接头导入 Obj-C.h文件。您也不能使用以下方式向前声明不透明的超类@class
。那么,这可能吗?如何实现?
不幸的是,不可能在 Objective-C 中子类化 Swift 类。直接来自文档:
您不能在 Objective-C 中子类化 Swift 类。
参见苹果的互操作性指南 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID136了解更多关于 Objective-C 可以访问和不能访问的内容的详细信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)