Ios 从目标c调用swift类(从NSObject类派生)init
我有一个Swift类,它继承了用Objective-C编写的NSObject派生类Ios 从目标c调用swift类(从NSObject类派生)init,ios,objective-c,iphone,swift,Ios,Objective C,Iphone,Swift,我有一个Swift类,它继承了用Objective-C编写的NSObject派生类 @objc class DisplayMessage : JSQMessage, BaseModel { init(var userId:String, var userName:String, var message:String, var group:Group) { //... } } 我如何从Objective-C调用这个init 我只看到JSQMessage(用obj-c编写的NS
@objc class DisplayMessage : JSQMessage, BaseModel
{
init(var userId:String, var userName:String, var message:String, var group:Group)
{
//...
}
}
我如何从Objective-C调用这个init
我只看到JSQMessage(用obj-c编写的NSObject派生类)inits..+没有参数的默认init方法
更新
我在swift中的init前面插入了一个@objc,得到了错误
方法无法标记为@objc,因为参数1,2,3,4的类型无法在objective-c中表示
在我看到这一点之后,我将字符串类型更改为NSString,并且组类已经是@objc;我仍然收到同样的错误
@objc init(var numberLol:Int)
{
super.init(senderId: "", senderDisplayName: "", date:nil, text: nil)
}
更新2
我用Int初始值设定项尝试了同样的方法,但得到了同样的错误
@objc init(var numberLol:Int)
{
super.init(senderId: "", senderDisplayName: "", date:nil, text: nil)
}
答案是我必须从init中的每个参数中删除“var”。为什么?idk您是否尝试过将
String
替换为NSString
?是的,我在更新1oops中提到过这一点!,对不起,我想不起来了。你为什么一开始就使用var
?