2017-01-06 10 views
1

私はswift perfect 2.0を使用しています.10秒後に関数を呼び出す必要があります。私はそれがこのコードで、通常のiOSアプリケーション上で動作させることができます。スウィフト3のディスパッチキューを使用すると便利です。2.0

let when = DispatchTime.now() + 10 
DispatchQueue.main.asyncAfter(deadline: when){ 
    //call function 
} 

しかし、私は迅速完璧でこれを行うことができない、と私はarroundの操作方法を知りません。これが私の要求の構造である:

public func InsertPost(_ request: HTTPRequest, response: HTTPResponse) 

    //logic 

    response.status = .custom(code: 200, message: "Success!") 
    response.completed() 

    //here i want to send a notification to some users, but only after 10 seconds. 
    //So i try to call function sendNotifications() like this: 

    let when = DispatchTime.now() + 10 
    DispatchQueue.main.asyncAfter(deadline: when){ 
     sendNotifications() 
    } 
{ 

それは)(私はそれを配置しても前response.completed、)(sendNotificationsを呼び出すことはありません、と私はおそらく間違っていると思っています。だから私の質問は、完璧な2.0でDispatchqueuesを使用する他の方法はありますか?彼らは動作していないようです。

答えて

2

[OK]を、今私は理解しています。私は迅速な完璧なメインキューをブロックすることはできません。

ソリューション:

let backgroundQueue = DispatchQueue(label: "com.app.queue", qos: .background, target: nil) 

let when = DispatchTime.now() + 10 
backgroundQueue.asyncAfter(deadline: when){ 
    //call function 
} 
+0

我々がメインキューを使用してはならないように見えます。チップありがとう –

関連する問題