[解決済み】SwiftのrespondsToSelectorに相当するものは何ですか?
2022-04-22 12:09:08
質問
ググってみたのですが、swiftに相当するものがわかりません。
respondsToSelector:
があります。
これしかなかったんです( respondsToSelector の Swift 代替品です。 私はデリゲートを持っていないので、デバイス上で実行するときに新しいAPIが存在するかどうかをチェックし、存在しない場合は以前のバージョンのAPIにフォールバックしたいだけです。
どのように解決するのですか?
前述の通り、Swiftでは
を使えば、ほとんどの場合、必要なことを実現することができます。
?
オプションのアンラッパー演算子
. これにより、オブジェクトが存在する場合にのみ、そのオブジェクトのメソッドを呼び出すことができます(not
nil
)であり、かつそのメソッドが実装されていること。
それでもなお
respondsToSelector:
の一部として残っています。
NSObject
プロトコルを使用します。
を呼び出している場合
respondsToSelector:
をSwiftのObj-C型で使用する場合、期待したのと同じように動作します。あなた自身のSwiftクラスでこれを使用している場合、あなたのクラスが以下のものを派生させる必要があります。
NSObject
.
セレクタに反応するかどうかを確認できるSwiftクラスの例です。
class Worker : NSObject
{
func work() { }
func eat(food: AnyObject) { }
func sleep(hours: Int, minutes: Int) { }
}
let worker = Worker()
let canWork = worker.respondsToSelector(Selector("work")) // true
let canEat = worker.respondsToSelector(Selector("eat:")) // true
let canSleep = worker.respondsToSelector(Selector("sleep:minutes:")) // true
let canQuit = worker.respondsToSelector(Selector("quit")) // false
重要なのは、パラメータ名を省略しないことです。この例では
Selector("sleep::")
は
ではない
と同じです。
Selector("sleep:minutes:")
.
関連
-
[解決済み] MPProgressHUDとNSSessionを使用したデータシンクの読み込み
-
[解決済み] dispatch_after - GCD in Swift?
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] Objective-Cのtypedef enumとは何ですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Swiftの@selector()?
-
[解決済み】(Swiftで)オブジェクトの型を調べるには?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] NSTaggedPointerStringをNSStringに変換する。
-
[解決済み] カスタムメイドのフレームワークで「セレクタ 'Hello:'の既知のクラスメソッドがありません」というエラーが発生する。
-
[解決済み] Objective-Cで乱数を発生させる
-
[解決済み] クラスメソッドとインスタンスメソッドの違いは何ですか?
-
[解決済み] NSTimerの使い方を教えてください。
-
[解決済み】浮動小数点値の比較はどのくらい危険か?
-
[解決済み】SwiftのコードをObjective-Cにインポートするにはどうすればいいですか?
-
[解決済み】浮動小数点以下が2桁しか表示されないようにする
-
[解決済み】NSStringが特定の文字で始まるかどうかを確認する方法