Swift 使用';dispatch_get_main_queue()';-XMPP

Swift 使用';dispatch_get_main_queue()';-XMPP,swift,chat,ejabberd,xmppframework,Swift,Chat,Ejabberd,Xmppframework,我正在使用XMPP做一个聊天活动项目。我正在使用以下代码生成它 var stream:XMPPStream! let xmppRosterStorage = XMPPRosterCoreDataStorage() var xmppRoster: XMPPRoster! override func viewDidLoad() { super.viewDidLoad() xmppRoster = XMPPRoster(rosterStorage: xmppRoster

我正在使用XMPP做一个聊天活动项目。我正在使用以下代码生成它

 var stream:XMPPStream!

 let xmppRosterStorage = XMPPRosterCoreDataStorage()
 var xmppRoster: XMPPRoster!

  override func viewDidLoad() {
    super.viewDidLoad()

    xmppRoster = XMPPRoster(rosterStorage: xmppRosterStorage)

    stream = XMPPStream()
    stream.addDelegate(self, delegateQueue: dispatch_get_main_queue())

    xmppRoster.activate(stream)

    let button = UIButton()
    button.backgroundColor = UIColor.red
    button.setTitle("SendMessage", for: .normal)
    button.frame = CGRect(x: 90, y: 100, width: 300, height: 40)//CGRect(90, 100, 300, 40)
    button.addTarget(self, action: #selector(self.sendMessage), for: .touchUpInside)

    self.view.addSubview(button)
    stream.myJID = XMPPJID(string: "test@localhost")

    do {
       try stream.connect(withTimeout: 30)
    }
    catch {
       print("error occured in connecting")
    }

    }
我指的是教程。 但我在下面这一行遇到了一些问题

stream.addDelegate(self, delegateQueue: dispatch_get_main_queue())
问题是,

“dispatch\u get\u main\u queue()的用法不明确”

主要是我使用的是Swift4.2


任何人请帮我找出解决办法。谢谢…

新语法是
DispatchQueue.main
,如果上下文需要
DispatchQueue
,则只需
.main
。因此:

stream.addDelegate(self, delegateQueue: .main)

您可以使用以下语法:

stream.addDelegate(self, delegateQueue: .main)
但是在xmpp中,您应该需要用swift4语法更新委托方法。他们只提供swift 3格式


在更改了最新的xmpp委托方法后,一切对我来说都很好…

我已经尝试过了,但它没有调用委托方法Sokay,但这不是你对你的帖子所抱怨的。如果您的问题与编译时错误不同,则需要发布实际问题的详细信息。