Objective c 快速扩展objc,初始值设定项
我在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
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类已经有了(另一个)指定的初始值设定项?