Неоднозначное использование dispatch_get_main_queue () - XMPP - PullRequest
0 голосов
/ 29 декабря 2018

Я делаю проект с активностью чата с использованием 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_get_main_queue ()'

Главное, я использую Swift4.2

Кто-нибудь, пожалуйста, помогите мне найти решение.Спасибо ...

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вы можете использовать следующий синтаксис:

stream.addDelegate(self, delegateQueue: .main)

Но в xmpp вам необходимо обновить метод делегата в синтаксисе swift4.они предоставляют только быстрый формат 3.

после изменения последних методов делегата xmpp все работает нормально для меня ...

0 голосов
/ 29 декабря 2018

Новый синтаксис: DispatchQueue.main или просто .main, если для контекста требуется DispatchQueue.Таким образом:

stream.addDelegate(self, delegateQueue: .main)
...