从 objective c 调用 swift class(派生自 NSObject class)
call swift class (derived from NSObject class) init from objective c
我有一个 Swift class 继承自 Objective-C.
中的 NSObject 派生 class
@objc class DisplayMessage : JSQMessage, BaseModel
{
init(var userId:String, var userName:String, var message:String, var group:Group)
{
//...
}
}
如何从 Objective-C 调用这个初始化?
我只看到 JSQMessage(NSObject 派生的 class 用 obj-c 编写)inits.. + 没有参数的默认 init 方法
更新
我在 swift 中的 init 前面插入了一个 @objc,我得到了错误
Method cannot be marked @objc because the type of the parameter 1,2,3,4 cannot be represented in objective-c
看到这里,我把String类型改成了NSString,Groupclass已经是@objc了;我仍然收到同样的错误
更新 2
我用 Int 初始化程序尝试过同样的事情,但我得到了同样的错误
@objc init(var numberLol:Int)
{
super.init(senderId: "", senderDisplayName: "", date:nil, text: nil)
}
好的所以答案是我必须从 init 中的每个参数中删除 "var"。为什么? idk
我有一个 Swift class 继承自 Objective-C.
中的 NSObject 派生 class@objc class DisplayMessage : JSQMessage, BaseModel
{
init(var userId:String, var userName:String, var message:String, var group:Group)
{
//...
}
}
如何从 Objective-C 调用这个初始化?
我只看到 JSQMessage(NSObject 派生的 class 用 obj-c 编写)inits.. + 没有参数的默认 init 方法
更新
我在 swift 中的 init 前面插入了一个 @objc,我得到了错误
Method cannot be marked @objc because the type of the parameter 1,2,3,4 cannot be represented in objective-c
看到这里,我把String类型改成了NSString,Groupclass已经是@objc了;我仍然收到同样的错误
更新 2
我用 Int 初始化程序尝试过同样的事情,但我得到了同样的错误
@objc init(var numberLol:Int)
{
super.init(senderId: "", senderDisplayName: "", date:nil, text: nil)
}
好的所以答案是我必须从 init 中的每个参数中删除 "var"。为什么? idk