Initializer

Alloc & Init

Objective-C

void test() {
    Foo *foo;
    foo = [[Foo alloc] init];
    // ...
}

Swift

func test() {
    var foo:Foo!
    foo = Foo()
    // ...
}

Designated Initializer

Designated Initializer is partially supported. The signature can be coverted but inner implementation is not modified.

Objective-C

@implementation Foo
-(id)init {
    self = [super init]; // Remains in Swift code
    if(self) { // Remains in Swift code
        // ...
    }
    return self; // Remains in Swift code
}

-(instancetype)initWithFrame:(CGRect) frame {
    // ...
}
@end

Swift

class Foo {
    init() {
        self = super.init() // Remains in Swift code
        if (self != nil) { // Remains in Swift code
            // ...
        }
        return self // Remains in Swift code
    }

    init(frame:CGRect) {
        // ...
    }
}