从目标c调用swift类(从NSObject类派生)init

时间:2015-01-09 07:12:33

标签: 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编写的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)
}

1 个答案:

答案 0 :(得分:0)

好的,所以答案是我必须从init中的每个参数中删除“var”。为什么? IDK的