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) {
// ...
}
}