質問: ... -> present(view) -> 通信を伴う処理 -> second呼び出し -> 通信を伴う処理 ] の順に処理されてしまいます。 排他制御や同期処理といったワードを見かけたのでインターネットで調べながらNSConditionやDispatch queue など色々と試してみたのですが、 うまくいきませんでした。 さらに NSCondition Dispatch_queue スレッド などあまり理解できておりません。 特定の処理をしている間、その他の処理を停止させておくようなコードを実装したいです。 どなたかご教授の程、よろしくお願い致します。 ### Xcode:8.3.3 Swift:3.x.x(最新のものです) macOS:Sierra 10.12.5
回答: とりあえずシンプルな形で。 ``` func func() { first() } func first() { /*通信を伴う処理*/... completionHandler: { second() } } func second() { /*通信を伴う処理*/... completionHandler: { DispatchQueue.main.async { let view = viewController(_:Any) present(view) } } } ```