'dispatch_get_main_queue()' 的模糊使用 - XMPP
Ambiguous use of 'dispatch_get_main_queue()' - XMPP
我正在做一个聊天项目 activity 使用 XMPP.I 我正在使用以下代码生成它,
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")
}
}
我参考了 this 教程。
但我在以下行中遇到了一些问题
stream.addDelegate(self, delegateQueue: dispatch_get_main_queue())
问题是,
Ambiguous use of 'dispatch_get_main_queue()'
主要是我用的是Swift4.2
任何人都请帮助我找出解决方案。谢谢...
新语法是 DispatchQueue.main
,如果上下文需要 DispatchQueue
,则只是 .main
。因此:
stream.addDelegate(self, delegateQueue: .main)
您可以使用以下语法:
stream.addDelegate(self, delegateQueue: .main)
但在 xmpp 中,您应该需要更新 swift4 语法中的委托方法。他们只提供 swift 3 格式。
在更改了最新的 xmpp 委托方法后,一切正常...
我正在做一个聊天项目 activity 使用 XMPP.I 我正在使用以下代码生成它,
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")
}
}
我参考了 this 教程。 但我在以下行中遇到了一些问题
stream.addDelegate(self, delegateQueue: dispatch_get_main_queue())
问题是,
Ambiguous use of 'dispatch_get_main_queue()'
主要是我用的是Swift4.2
任何人都请帮助我找出解决方案。谢谢...
新语法是 DispatchQueue.main
,如果上下文需要 DispatchQueue
,则只是 .main
。因此:
stream.addDelegate(self, delegateQueue: .main)
您可以使用以下语法:
stream.addDelegate(self, delegateQueue: .main)
但在 xmpp 中,您应该需要更新 swift4 语法中的委托方法。他们只提供 swift 3 格式。
在更改了最新的 xmpp 委托方法后,一切正常...