在子类化时混合objective-c和swift

apo*_*try 55 objective-c ios swift

我有一个用Swift编写的UIViewController子类,叫做'BaseViewController'.我现在有一个名为'ViewController1'的'旧'视图控制器,用Objective-C编写,我想从'BaseViewController'继承.按照其他建议我导入了'Project-Swift.h'头文件.

像这样子类化时我的问题出现了

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

@interface ViewController1 : BaseViewController
@end
Run Code Online (Sandbox Code Playgroud)

错误是:

不能使用objc_subclassing-restricted属性对类进行子类化

它出现在@interface ...行上.

Ani*_*ese 89

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

摘自使用Swift与Cocoa和Objective-C

  • 谢谢!错过了 - 所以没有办法在没有完全重写的情况下慢慢地将旧项目和新项目迁移到Swift :). (3认同)
  • 您可以在Swift中继承Objective-C类.从底部开始,继续前进. (2认同)
  • @MatejUkmar你可以在swift中使用你的ObjectiveC类.不需要重写它 (2认同)

Luk*_*kas 10

您不能在Objective-C中子类化Swift类.比照 在本部分文档的末尾:

但是,请注意,您不能在Objective-C中子类化Swift类.