【发布时间】:2015-03-07 11:30:56
【问题描述】:
我有一个 Swift 类,它继承自一个用 Objective-C 编写的 NSObject 派生类。
@objc class DisplayMessage : JSQMessage, BaseModel
{
init(var userId:String, var userName:String, var message:String, var group:Group)
{
//...
}
}
如何从 Objective-C 调用这个初始化程序?
我只看到 JSQMessage(用 obj-c 编写的 NSObject 派生类)inits.. + 一个没有参数的默认 init 方法
更新
我在 swift 中的 init 前面插入了一个@objc,我得到了错误
方法不能标记@objc 因为参数1,2,3,4的类型不能在objective-c中表示
看到这个后,我把String类型改成了NSString,Group类已经是@objc了;我仍然收到同样的错误
更新 2
我用 Int 初始化器尝试过同样的事情,我得到了同样的错误
@objc init(var numberLol:Int)
{
super.init(senderId: "", senderDisplayName: "", date:nil, text: nil)
}
【问题讨论】:
-
你试过用
NSString替换String吗? -
是的,我在 UPDATE 1 中提到了这一点
-
哎呀!,对不起,我错过了
标签: ios objective-c iphone swift