将 Obj-C init 覆盖函数转换为 Swift 3

五角形

如何将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.0Swift 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代码转换为Swiftobjectivec2swift

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章