問題タブ [respondstoselector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - RespondsToSelector - 動作していません
10 件ほどの投稿を読みましたが、実装の何が問題なのかわかりませんでした。
このアプリは iOS 6 で作成されましたが、iOS 7 にアップデートされたので、iOS 6 と iOS 7 の両方をサポートしたいと考えています。しかし、iOS6 デバイスで iOS7 専用のメソッドを実行すると、うまくいきません。そこで、respondsToSelector を追加して、iOS7 があることを確認しようと考えましたが、何らかの理由で、if は常に false を返します。
AppDelegate.m:
誰かが私が間違っていることを教えてもらえますか?
編集: 配置ターゲットを iOS6 と iOS7 の両方に設定して試しましたが、どちらの場合も false が返されます。
Edit2: if ステートメントを削除してメソッドを呼び出すと、iOS7 で意図したとおりに動作します。
ios - RespondsToSelector とのマッチングのためにセレクターを動的に準備する方法
次のようなプロパティを持つクラスがあるとします。
@property(nonatomic,retain) NSString* un_conventional;
私は次のようにセレクターを形成しようとしました:
key
PS:値を持つ変数であることを当然のことと考えてくださいun_conventional
capitalizedString
問題は、これが正しい setter メソッドと一致しないことのようです。名前の代わりにsetterMethod
名前が付けられるためです... 文字 "c" も大文字です!setUn_Conventional
setUn_conventional
setUn_conventional
それで、名前付きのセレクターになり、respondsToSelector を介して一致するために使用できるように、そのようなシナリオのためにセレクターを動的に準備する方法について誰か提案がありますか?
ios7 - repondsToSelector: 宣言されていないセレクターの警告、実行時に正常に動作
このコードで警告が作成されない大規模なプロジェクトがあります。目的のView Controllerのさまざまなアイデアを試すためだけに、小さな新しいプロジェクトを作成しました。
同様の質問に対する以前の回答をすべて検索しましたが、次のような考えがあります。
1)正常に動作するため、警告を無視できますが、そうしたくありません。
2) 大規模なプロジェクトでは警告が表示されないのに、この新しいプロジェクトでは警告が表示されるのはなぜですか? ビュー コントローラー クラスを新しいプロジェクトに持ち込んだときに何かを忘れていませんか。
3) XCode4 と iOS6 でより大きなプロジェクトを開始してから、何か変更がありましたか (XCode5 と iOS7 では問題なく動作しますが)。そして、新しいプロジェクトが XCode5 で開始されたことに違いはありますか。
4)宛先ビューコントローラーヘッダーをインポートすることで警告を取り除くことができますが、メソッド setMilage: が私のプロジェクトにあるため、respondsToSelector を使用する場合はそうする必要はないと思います。
私の理解を深めるための助けをいただければ幸いです。私はどこかで単純な間違いを犯したと確信しています.1つのプロジェクトでは警告なしでコードが機能し、他のプロジェクトではコードが機能しないため、イライラします.
前もって感謝します。
ps ご想像のとおり、perfomSelector でも同じ警告が表示されます。
完全な警告 - Semantic Issue Undeclared selector 'setMilage:'
objective-c - ( ConformsToProtocol: && RespondsToSelector: ) vs ただの ( RespondsToSelector: )
うまくいけば、それぞれのプロトコルメソッドを実装するデリゲートオブジェクトでプロトコルメソッドを呼び出したい場合、開発者が最初にチェックするのを見ます
代わりにこれを行う方が良いか、より安全ではありませんか? :
プロトコル メソッドの定義が適切に構成されていれば、MyProtocol を対象としていない、または MyProtocol から派生したデリゲートに競合や実装が発生することは決してないはずです。このような競合は思いもよらないことですが、単純に -(void)willStartLogin; と宣言されたプロトコル メソッド定義に出くわしました。そのようなプロトコルメソッドがいかに悪いかを考え、提案し始めることができると確信しています. MyProtocol のメソッドを次のように宣言することをお勧めします。 -(void)myObjectWillStartLogin:(MyObject*)myObjectInstance; あいまいさを取り除き、物事を明確にするためです。
RespondsToSelector を確認するだけでよいというようなことを見逃していないことを願っています: ありがとう
ios - __IPHONE_7_0 と RespondsToSelector の使用
私はこのコードに出くわし、#ifdef チェックが冗長であるかどうか疑問に思っていました。
それを削除して iOS 6 で実行してみましたが、問題なく動作しました。iOS 6/7 で、トリガーされない、またはクラッシュする原因となる特別なケースはありますか?
objective-c - (id) にキャストして、Objective-C で任意のメソッドを呼び出す
オブジェクトで必ずしもサポートされていないメソッドを呼び出す必要がある状況がありますが、同時に、メソッドに渡すことができる引数の種類が制限されるため、performSelector を使用できません。したがって、私はこれを行います:
コンパイラは満足しています。私も満足していますが、このメッセージ送信方法に注意点はありますか?
同期バージョンの performSelector と上記の本質的な違いは何ですか?
編集: (id) メソッドと比較して、performSelector を使用するとパフォーマンスが低下しますか?