2016-12-08 2 views
2

Преобразование моего объекта C + Swift 2.x в Swift 3 в Xcode 8. После преобразования кода я получаю это новое предупреждение, что я не знаю, безопасно ли оно игнорировать/как его решить.dispatch_get_main_queue() objc warning после преобразования Swift 3

My Swift 3 Код:

func getUserNotificationFromServer(_ completionQueue:DispatchQueue = DispatchQueue.main,callback: @escaping (_ succeeded: Bool, _ response: AnyObject?) -> Void) { 

Цель код C, который вызывает эту функцию

[wsManager getUserFavouritesFromServer:dispatch_get_main_queue() callback:^(BOOL succeeded, id _Nullable response) { 

Предупреждение, что я получаю

Несовместимые типы указателей отправки ' dispatch_queue_t _No nnull»(ака 'NSObject *') для параметра типа '*' _Nonnull OS_dispatch_queue

Любые мысли?

+0

проверить этот пост , здесь описано отлично: [link] (http://stackoverflow.com/questions/37805885/how-to-create-dispatch-queue-in-swift-3) –

+0

Этот пост рассказывает о коде Swift, это предупреждение появляется, когда я вызываю метод, написанный в Swift 3 из моего класса Objective C –

ответ

1

Я не понимаю, почему, но DispatchQueue выставлен как OS_dispatch_queue * в сгенерированном {ProjectModuleName} -Swift.h.

(Лучше отправить bug report в Apple.)

Насколько я испытал, только литье, как предложено в сообщении подавляет предупреждение, и код работает, как ожидалось:

[wsManager getUserNotificationFromServer:(OS_dispatch_queue * _Nonnull)dispatch_get_main_queue() 
           callback:^(BOOL succeeded, id _Nullable response) { 
Смежные вопросы