如何从Objective-C调用Swift初始化程序(有一个参数)?

Ger*_*rry 10 objective-c ios swift

我有一个Swift类:

class MyTextField : NSObject, UITextFieldDelegate { 

    var myField: UITextField

    // no idea how to pass in my UITextField from Objective-C code
    init (x: UITextField) {
        myField = x;
    }
}
Run Code Online (Sandbox Code Playgroud)

我添加了一个属性(未显示),因此我可以设置myField,一切正常.

想使用init函数,如果只是语法不是一个完整的谜.有任何想法吗?

NRi*_*itH 11

以与调用Obj-C初始化程序相同的方式调用它,因此对于您的示例,您可以调用它[[MyTextField alloc] initWithX:theTextField];.

  • 在 swift 4+ 中,初始化器必须使用 @objc 声明,否则 Objective-C 代码将看不到它: \@objc init(x:UITextField) (2认同)