如何将MyViewControllerB 中的initWithDevice:函数重写为 Swift 3?
视图控制器A
@interface MyViewControllerA : UIViewController
- (instancetype)initWithDevice:(DeviceClass *)device;
@end
@implementation MyViewControllerA
- (instancetype)initWithDevice:(DeviceClass *)device
{
self = [super init];
if ( self ) {
// set a bunch of properties
}
return self;
}
@end
视图控制器B
@interface MyViewControllerB : MyViewControllerA
- (instancetype)initWithDevice:(DeviceClass *)device;
@end
@implementation MyViewControllerB
- (instancetype)initWithDevice:(DeviceClass *)device
{
if (self = [super initWithNibName:@"AnotherViewController" bundle:nil]) {
// init stuff for subclass
}
return self;
}
@end
适用于Swift 3.0和Swift 2.2
override init(device: DeviceClass) {
super.init(nibName: "AnotherViewController", bundle: nil)
// init stuff for subclass
}
required init?(coder aDecoder: NSCoder){
super.init(coder: aDecoder)
}
您也可以使用以下站点将Objective-c代码转换为Swift:objectivec2swift
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句