問題タブ [method-swizzling]
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 - メソッド スウィズリング - この実装内のプロパティ マッピングについて説明してください
私はオープン ソースのプル ツー リフレッシュ コントロールを調べていましたが、次のように UIViewController カテゴリのライフサイクル メソッドを切り替えます。
呼び出されたときviewWillAppear
に上記のメソッドにマップされ、その呼び出し[self INBPullToRefreshView_viewWillAppear:animated];
は元の にマップされることがわかりviewWillAppear
ます。
ただし、次のことは何をしますか?
コントロールのgithub ソースは次のとおりです。
objective-c - メソッドスウィズリングでのdispatch_onceの使用
NSHipter のメソッド スウィズリングに関する記事では、「スウィズリングは常に dispatch_once で実行する必要があります」と書かれています。+load はクラスごとに 1 回しか発生しないため、なぜこれが必要なのですか?
unit-testing - SwiftでNSDateをモックする方法は?
いくつかの日付計算をテストする必要がありますが、そのためにNSDate()
は Swift でモックする必要があります。アプリ全体が Swift で書かれているので、テストも書きたいと思います。
メソッドの入れ替えを試みましたが、うまくいきません (または、何か間違ったことをしている可能性が高いです)。
テスト:
ただしdate
、常に現在の日付です。
ios - プロトコルのメソッド スウィズリング
textFieldDidBeginEditing:
やのようなプロトコル メソッドを Swizzle できるようにしたいtableView:didSelectRowAtIndexPath:
。これはどのように行うことができますか?
ios - Objective-Cメソッドの完了ブロックにスウィズルする方法は?
例として、このメソッドを見てみましょう:
animatedWithDuration:animations:completion:
メソッド自体の別の実装または変更された実装をスウィズルするのは簡単です。代わりに、完了ブロックに対してこれを行うことに興味がある場合はどうなりますか?
ios - プロジェクトで WYPopover を使用すると UINavigationControllerDelegate メソッド呼び出しがクラッシュする
私は WYPopoverController を組み込んだアプリに取り組んでおり、本来あるべき場所でうまく機能します。組み込みのプッシュ/ポップではなく、2 つのコントローラー間にカスタム アニメーションを追加したいと考えています。
FROM および TO コントローラーを含むナビゲーション コントローラーでは、WYPopoverController に関連することは何もしません。コントローラーの FROM および TO でも同様です。
実際のアニメーションを処理する非常にシンプルなアニメーター クラスであるナビゲーション コントローラー デリゲートを実装しました。
アニメータークラス:
FROM コントローラーで、ナビゲーション デリゲートを初期化します
(コレクション)セルをタップしてTOコントローラーに移動したい時点まで、すべてがコンパイルされて実行されます。その時点で、アプリがエラーでクラッシュします: -[CALayer navigationController:animationControllerForOperation:fromViewController:toViewController:]: unrecognized selector sent to instance 0x7fc72e53e970
ブレークポイントを追加し、sizzled_pushViewController:animated:
UINavigationController のメソッド内に行き着きました。正直なところ、私はこの問題にどのようにアプローチすればよいかわかりません。
ios - よりクリーンなクラス実装を維持するためのメソッド スウィズリング
特に、チェックして制御するこのクラスの多くのメソッドに異なる実装を追加する「チュートリアル状態」を追加したため、アプリのviewControllerの1つがかなり大きくなっている状況にあります
したがって、私の質問は、これがメソッドのスウィズリングの適切な使用例であるかどうかです。これらのメソッドのさまざまな実装を別のカテゴリに入れ、必要に応じてスウィズルすることができます。デフォルトの実装のコード量を減らすのに役立つかもしれません。他のテクニックのコメントや提案は大歓迎です。
ios - iOSでUIApplicationをスウィズルするには?
Swizzle UIApplication
特に " " メソッドをクラス化する必要がありapplication:handleOpenURL:
ます。UIApplication のカテゴリ クラスを追加しました。独自のメソッドを元のメソッドと交換しましたが、トリガーされませんでした。Swizzle クラスはアプリの起動時に初めて呼び出されましたが、swizzle メソッドはトリガーされませんでした。参考までにコードを添付しました。
誰か私の一日を救ってくれませんか? 「RSSwizzle」などのプライベート ライブラリを使用してみましたが、助けにはなりませんでした。