Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。383件1こんにちは、Swiftというかクロージャ?についての質問です。下のコードのようにAlamofire.request.responseJSON内で定義された定数をresponseJSON外でも利用できるようになる方法がもしあればご教授お願いいたします。個の銅バッジ非同期処理で得られた結果は必ず完了ハンドラーの中で使う、と言うのが原則です。あなたはAlamofire.request...で取得したstrmsgをどう使いたいのですか?少なくともあなたがprint(strmsg)を書いた位置では、まだ通信は終了していないわけですから、その場所で通信の結果を仕様することはできません。ありがとうございます。非同期処理について学んでから設計を考えてみたいと思います。2:38クロージャーを使うと非同期処理が格段に書きやすくなるので、逆に学習中の方にとっては何が起こるのか起こっているのか分かりにくくなっている部分があるかもしれません。非同期処理の結果をどう使いたいのかがわかれば、もう少し適切なアドバイスができるかと思います。ご自分の中でうまく整理できたらこの質問を編集するなり新しいスレッドを立てるなりしてお尋ねください。recreated.}こうなると思います。こちらを参考にしました。SwiftでGCDを使ってみよう!Swift3で書き換えています。動作確認はしていません。個の銅バッジ早速のご返信ありがとうございます。いう風に出てきてfinishが出力されませんでした。したのですが、それも出てきませんでした。ついては変数のスコープを誤っていました。コードを編集しました。"nw_socket_set_common_sockopts..については、残念ながらわかりません。8:06あなたのコードはメインスレッドをブロックしてしまいます。これはiOSのアプリ作成では「絶対にやってはいけない」の筆頭と言えるものです。あなたがリンクを掲載された記事中でもAlamofireでのセマフォ使用例は「迂闊に使うと思わぬ落とし穴にハマってしまう」方の例として書かれています。Storeでリジェクトを食らう理由になりえます。メインスレッド(viewDidLoad()はメインスレッドで実行されます)の中ではsemaphore.wait()はしてはいけない、と覚えておいた方が良いでしょう。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。