swift 3.0で何らかの遅延(0.2 ms)を使用してメソッドを呼び出そうとしていますが、最初に遅延を伴うメソッドを呼び出すと、同じメソッドが再度呼び出されますすでに0.2秒以内に呼び出された場合は前回の呼び出しをキャンセルする必要があります。私は客観的なCがperformSelectorとcancelPreviousPerformRequestWithTargetを持っているのを見ることができましたが、私はSwift 3.0のための同じ例を見つけることができません、いずれかが助けてください。Swift3 performSelectorとcancelPreviousPerformRequestWithTargetのバージョン
0
A
答えて
2
これらのメソッドを取得するには、クラスをNSObject
のサブクラスにする必要があります。
class MyClass: NSObject {
func performAction(afterDelay delay: TimeInterval) {
perform(#selector(MyClass.action), with: self, afterDelay: delay)
}
func action(sender: Any?) {
print("action called")
}
func cancel() {
NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(MyClass.action), object: self)
}
}
しかし、いくつかのアクションを実行する必要がある場合は、GCDメソッドを確認することができます。
DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
//you action
}
関連する問題
- 1. performselectorメソッド
- 2. カテゴリクラスメソッドのperformSelector
- 3. performSelectorは、デバッグモード
- 4. performSelector on C++クラスメソッド?
- 5. related to performSelector
- 6. IPhone + performselector in background
- 7. dispatch_after対performSelector afterDelay
- 8. performSelector ARC警告
- 9. JSON Swift3としての文字列swift3
- 10. Swift3のSKSceneとURLQueryItems?
- 11. SKAudionodeとSwift3
- 12. performSelectorにnilを渡す
- 13. swift3
- 14. Swift3
- 15. Swift3:
- 16. Swift3
- 17. iOSでのperformSelectorの使用方法
- 18. performSelectorの停止:実行中から
- 19. 私のperformSelectorで警告する理由
- 20. [self MethodName]と[self performSelector:@selector(Method Name)]の違い
- 21. ReactiveCocoa swift3移行
- 22. facebookSDK、Swift3とAppDelegateは、ログインに
- 23. Swift3のUIViewアニメーション
- 24. swift3のXMLParser.sharedParser.decode()
- 25. performSelectorが呼び出されなくperformSelector:afterDelay
- 26. performSelector for activityIndicator for webサービス - IOS
- 27. がswift3
- 28. scheduledTimerWithTimeIntervalとiOS 5.0で遅延してperformselectorを比較
- 29. Swift3/Alamofire4の移行、
- 30. swift3国と電話番号のピッカー
Grand Central Dispatch(GCD)をご覧ください。それはあなたが必要とするすべてを提供します。 – vadian
または、タイマーを使用して、前のタイマーを常に無効にします。 – Sulthan