2016-12-08 13 views
2

私の目標C + Swift 2.xコードをXcode 8のSwift 3に変換します。コードを変換した後、私には安全であるかどうかわからないという新しい警告が表示されています無視する/解決する方法。dispatch_get_main_queue()Swift 3変換後のobjc警告

マイスウィフト3コード:私は 'を送信

互換性のないポインタ型を受け付けておりますことを警告

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

この関数を呼び出す

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

Objective Cのコードdispatch_queue_t _No OS_dispatch_queue * _Nonnull '

任意の考え 'タイプ のパラメータにnnull」(別名 ' NSObjectの*)'?

+0

この記事をチェックここで完全に説明されています:[リンク](http://stackoverflow.com/questions/37805885/how-to-create-dispatch-queue-in-swift-3) –

+0

この投稿はSwiftコードについて語りますが、この警告は私はObjective CクラスからSwift 3で書かれたメソッドを呼び出します –

答えて

1

理由はわかりませんが、DispatchQueueは生成された{ProjectModuleName} -Swift.hにOS_dispatch_queue *として公開されています。

(ベター・アップルにbug reportを送信してください。)

限り私がテストして、ちょうどメッセージで提案されているようにキャストすると警告を抑制し、期待通りのコードが動作します。

[wsManager getUserNotificationFromServer:(OS_dispatch_queue * _Nonnull)dispatch_get_main_queue() 
           callback:^(BOOL succeeded, id _Nullable response) { 
関連する問題