2017-11-27 12 views
0

への非同期呼び出しを手渡し私は、この私のコードが同期している実行したときに私が持っている問題があるは、私は私のdatabase.swiftファイル内の以下のメソッドを持ってFirestore

func BlahTest() { 

     let database = Database() 
     print("going to get documents") 

     database.GetTestData(arg: true) { (tweets) in 

      self.tweets = tweets 

      self.tableView.reloadData() 

     } 


     print("after calling function")   
    } 

、それによって私はprint("Found documebts")前に呼び出されprint("after calling function")を意味する:、私は次の(私のテーブルビューコントローラ内に位置)で、この関数を呼び出しますそれは私にそれを伝えるFirestoreへの非同期呼び出しが完了するのを待たずに、今はiOSの開発に新しくなったので、誰かがこれをどう処理するのか理解できるように助けてくれるだろうか?

ありがとうございます。

答えて

3

GetTestData()メソッドでクロージャブロックを使用しています。このメソッドの実行後に行われるべき何かが完了内で行われている必要があります

1. Async semantics proposal for Swift

2. AwaitKit : The ES8 Async/Await control flow for Swift

:非同期の実装に関するいくつかのリソースです

{ 
    (tweets) in 
     self.tweets = tweets 
     self.tableView.reloadData() 

     // Do rest of stuff here. 
} 

後/他の言語のように迅速に待っています

3. Concurrency in Swift: One approach

4. Managing async code in Swift

希望します。

関連する問題