Swift(iOS)で遅延した後にメソッドを呼び出す方法は?
この投稿では、Swiftを使用してメソッド呼び出しを遅らせる方法を説明します。ここでは、2つの方法で同じことを達成する方法を見ていきます。
それでは始めましょう
Playgroundで両方の例を見ることになります
ステップ1-Xcode→NewPlaygroundを開きます。
最初のアプローチでは、asyncAfter(deadline:execute :)インスタンスメソッドを使用します。このメソッドは、指定された時間に実行するようにワークアイテムをスケジュールし、すぐに戻ります。
詳細については、https://developer.apple.com/documentation/dispatch/dispatchqueue/2300020-asyncafter
をご覧ください。ステップ2-Playgroundで以下のコードをコピーして実行します
func functionOne() { let delayTime = DispatchTime.now() + 3.0 print("one") DispatchQueue.main.asyncAfter(deadline: delayTime, execute: { hello() }) } func hello() { print("text") } functionOne()
ここでは、1つの関数functionOneを作成しています。ここでは、最初に3秒の遅延時間を宣言しています。次に、asyncAfterを使用して、遅延時間をパラメーターとして指定し、3秒後にhello()関数を実行するように要求しています。
上記のプログラムを実行すると、最初に「1つ」が印刷され、3秒後に「テキスト」が印刷されます。
2番目のアプローチでは、NSTimerを使用します
以下のコードをXcode→シングルビューアプリケーションにコピーできます
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() print("one") Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(ViewController.hello), userInfo: nil, repeats: false) } @objc func hello() { print("text") } }
アプリケーションを実行すると、同じ出力が表示されます。1つが印刷され、3秒後にテキストが印刷されます。
-
JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?
invokeLater() メソッドは静的です SwingUtilitiesのメソッド クラスであり、タスクを非同期に実行するために使用できます。 AWT イベントディスパッチャスレッド 。 SwingUtilities.invokeLater() メソッドはSwingUtilities.invokeAndWait()のように機能します ただし、リクエストはイベントキューに配置されます そしてすぐに戻る 。 invokeLater() メソッドは、実行可能内のコードのブロックを待機しません ターゲットによって参照されます 実行します。 構文 public static void in
-
iOSで緊急通報機能を無効にする方法
緊急時には、911にダイヤルできる速度が速いほど良いです。緊急サービスにできるだけ早く接続できるように、iPhoneにはいくつかの緊急電話のショートカットが用意されています。ただし、誤って911にダイヤルする可能性も高くなります。たとえば、子供にiPhoneでモバイルゲームをプレイさせた場合、誤ってアクティブ化する可能性があります。 この記事では、iOSの緊急通報のショートカットをすべて取り上げます。また、これらの緊急通報設定を微調整または無効にして、誤って911にダイヤルする可能性を減らす方法も示します。 iPhoneで911に自動的に電話をかける方法 誤って911に電話をかけないよう