2

Java には、新しいスレッドでタスクを実行できる Future または FutureTask があります。その後、実行結果を元のスレッドに返します。それを実現できるSwiftの機能はありますか?

4

6 に答える 6

2

Futures と promisesと呼ばれるある種の言語構造を調べています。次のようないくつかの例を見つけることができます。

ただし、言語自体にはそのような機能がありません。

于 2014-10-23T23:18:17.507 に答える
2

言語 (標準ライブラリを意味する) によって提供されていませんが、独自のライブラリを作成するか、単にhttps://github.com/Thomvis/BrightFuturesなどのライブラリを使用することができます。

于 2014-10-23T23:12:34.623 に答える
1

Apple が Swift で Futures または Promises を実装した場合、彼らはそう言うでしょうか? 結局のところ、彼らは常に未来の製品について話すことを避けています. ;)

とにかく、元の質問は、一般的に非同期作業を行う方法に関するものであり、Futures/Promises スタイル モデルで具体的に行うことではありません。したがって、他の回答で言及されているサードパーティのライブラリはそのモデルに最適ですが、そのモデルがなくても、ObjC:dispatchまたはNSOperation. 例えば:

NSOperationQueue().addOperationWithBlock {
    // do background work
    NSOperationQueue.mainQueue().addOperationWithBlock {
        // back to main thread for follow up work
    }
}
于 2015-06-12T20:28:26.690 に答える