[解決済み]SwiftでどのようにGCDメインスレッド上のパラメータを持つメソッドを呼び出すには?
2022-04-14 22:36:58
質問
私のアプリでは、NSRURLSession を作成し、NSURLRequest を送信する関数があります。
sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error)
このタスクの完了ブロックでは、呼び出したビューコントローラに UIImage を追加する計算を行う必要があります。という func があります。
func displayQRCode(receiveAddr, withAmountInBTC:amountBTC)
で、UIImage-adding の計算を行います。補完ブロックの中でビューを追加するコードを実行しようとすると、Xcodeは、バックグラウンド・プロセスの間はレイアウト・エンジンを使用できないというエラーを投げます。そこで、メインスレッドにメソッドをキューイングしようとするコードをSOで見つけました。
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(0.0 * Double(NSEC_PER_MSEC)))
dispatch_after(time, dispatch_get_main_queue(), {
let returned = UIApplication.sharedApplication().sendAction("displayQRCode:", to: self.delegate, from: self, forEvent: nil)
})
しかし、この関数呼び出しにパラメータ "receiveAddr" と "amountBTC" をどのように追加すればよいのか分かりません。また、アプリケーションのメインキューにメソッド呼び出しを追加するための最適な方法をどなたか教えてください。
どのように解決するのですか?
最近のSwiftのバージョンでは
DispatchQueue.main.async
を使用してメインスレッドにディスパッチします。
DispatchQueue.main.async {
// your code here
}
への 派遣する を主キューで使用します。
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
// your code here
}
古いバージョンのSwiftを使用。
dispatch_async(dispatch_get_main_queue(), {
let delegateObj = UIApplication.sharedApplication().delegate as YourAppDelegateClass
delegateObj.addUIImage("yourstring")
})
関連
-
[解決済み] Info.plist ユーティリティのエラーです。"そのようなファイルがないため、Info.plistを開くことができませんでした"
-
[解決済み] SwiftUI vs Interface Builderとストーリーボード【非公開
-
[解決済み] dispatch_after - GCD in Swift?
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftでindexとelementでループを反復させる方法
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み】メインスレッドでタスクを実行するGCD
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】クラスは両方で実装されており、どちらかが使用されることになります。どちらが未定義か
-
[解決済み] 警告: 'characters' は非推奨です。String または Substring を直接使用してください。
-
[解決済み] "CFNetwork SSLHandshake failed (-9806)" の解決方法について
-
[解決済み] 指定されたホスト名を持つサーバーが見つからなかった
-
[解決済み] ブリッジングヘッダ用のプリコンパイルヘッダの発行に失敗しました。
-
[解決済み] Swift の performSegueWithIdentifier が動作しない。
-
[解決済み] Stringをformatで作成するには?
-
[解決済み] CFBundleVersionとCFBundleShortVersionStringには、どのような値を使用すればよいですか?
-
[解決済み] HTTPの読み込みに失敗しました(エラーコード:-1200 [3:-9802])。
-
[解決済み] 'CGPointMake' は swift で使用できません [重複] 。