[解決済み】SwiftでTimer(旧NSTimer)を使用するにはどうすればよいですか?
2022-04-04 09:25:44
質問
試してみた
var timer = NSTimer()
timer(timeInterval: 0.01, target: self, selector: update, userInfo: nil, repeats: false)
しかし、次のようなエラーが発生しました。
'(timeInterval: $T1, target: ViewController, selector: () -> (), userInfo: NilType, repeats: Bool) -> $T6' is not identical to 'NSTimer'
解決方法は?
これでうまくいきます。
override func viewDidLoad() {
super.viewDidLoad()
// Swift block syntax (iOS 10+)
let timer = Timer(timeInterval: 0.4, repeats: true) { _ in print("Done!") }
// Swift >=3 selector syntax
let timer = Timer.scheduledTimer(timeInterval: 0.4, target: self, selector: #selector(self.update), userInfo: nil, repeats: true)
// Swift 2.2 selector syntax
let timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: #selector(MyClass.update), userInfo: nil, repeats: true)
// Swift <2.2 selector syntax
let timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "update", userInfo: nil, repeats: true)
}
// must be internal or public.
@objc func update() {
// Something cool
}
Swift 4 では、セレクタを取得したいメソッドが Objective-C に公開されている必要があるので、次のようにします。
@objc
属性をメソッド宣言に追加する必要があります。
関連
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み】Cocoapodsをインストールできない - プロジェクト・ディレクトリにポッドファイルが見つからない
-
[解決済み】NSURLErrorDomainエラーコードの説明
-
[解決済み] swift3におけるセレクタ
-
[解決済み] dispatch_queue_create のキュー属性とは?
-
[解決済み] iOS 9 : ユニバーサルアプリの警告「アプリがフルスクリーンを必要としない限り、すべてのインターフェイスの向きをサポートする必要があります」。
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] NSTimerの使い方を教えてください。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Cocoapodsをインストールできない - プロジェクト・ディレクトリにポッドファイルが見つからない
-
[解決済み] 現在時刻をdatetimeで取得する方法
-
[解決済み] UICollectionView: 非Nilのレイアウトパラメータで初期化する必要があります。
-
[解決済み] dispatch_after - GCD in Swift?
-
[解決済み] #ifdef DEBUG 対 #if DEBUG
-
[解決済み] swift3におけるセレクタ
-
[解決済み] ios8ではdidRegisterForRemoteNotificationsWithDeviceTokenは呼ばれないが、didRegister...Settingsは呼ばれる。
-
[解決済み] CFBundleVersionとCFBundleShortVersionStringには、どのような値を使用すればよいですか?
-
[解決済み] Swiftの@selector()?
-
[解決済み] Swiftでディレイを作成するには?