Objective c 快速扩展objc,初始值设定项

Objective c 快速扩展objc,初始值设定项,objective-c,swift,initialization,Objective C,Swift,Initialization,我在objc类上有init()方法 swift类对objc类进行子类化,并尝试调用super.init() 这是一个错误,因为init()不是MyObjcViewcontroller的指定初始值设定项 @interface MyObjcViewController: UIViewController { } - (id) init; @end @implementation MyObjcViewController - (id) init { self = [super

我在objc类上有
init()
方法

swift类对objc类进行子类化,并尝试调用
super.init()

这是一个错误,因为
init()
不是MyObjcViewcontroller的指定初始值设定项

@interface MyObjcViewController: UIViewController {
 }

- (id) init;

@end

 @implementation MyObjcViewController

 - (id) init {
     self = [super init];
     if (self) {
     }
     return self;
 }

 @end


 @objc class MySwiftViewController: MyObjcViewController {

     override init() {
         super.init()            // error
     }

 }

你试图把objective-c和swift放在同一行代码中。如果您想这样做,您应该使用桥接器,以便文件在编译时不会受到编译器之间的干扰。如果这不能回答您的问题,请告诉我。

您试图将objective-c和swift放在同一行代码中。如果您想这样做,您应该使用桥接器,以便文件在编译时不会受到编译器之间的干扰。如果这不能回答你的问题,请告诉我。

<代码> MySWIFTVIEWVIEW::(代码)< /C> >看起来更像C++而不是Objy-C或Swift……哦,我只是想展示PasDo代码。是的,我会解决它。也许它有助于用NS_指定的_初始值设定项装饰Objective-C方法,比较。是的,它确实有帮助。把它放在父类声明之后。我还必须向子类方法添加
override
。如果你把它作为答案贴出来,我可以接受。事实上,我无法重现你的问题。在Swift中重写Objective-C init方法对我来说没有问题(如果指定了
override
),即使没有指定的初始值设定项您能否提供一个最小的自包含示例(使用.h、.m和Swift代码)?——也许Objc类已经有(另一个)指定的初始化器了?<代码> MySWIFTVIEWFRIECT::/In(代码)看起来更像C++而不是Objy-C或Swift……哦,我只是想展示PasDo代码。是的,我会解决它。也许它有助于用NS_指定的_初始值设定项装饰Objective-C方法,比较。是的,它确实有帮助。把它放在父类声明之后。我还必须向子类方法添加
override
。如果你把它作为答案贴出来,我可以接受。事实上,我无法重现你的问题。在Swift中重写Objective-C init方法对我来说没有问题(如果指定了
override
),即使没有指定的初始值设定项您能否提供一个最小的自包含示例(使用.h、.m和Swift代码)?——也许ObjC类已经有了(另一个)指定的初始值设定项?