問題タブ [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.
ios - 無限ループに陥らずに NSError init をスウィズルする方法
NSError
スウィズリング時に元のinitメソッドを呼び出す方法は?
私の現在の実装
objective-c - Objective-C でメソッド呼び出しごとにラッパーを生成することは可能ですか?
私は多くのクラスを持つプロジェクトを持っています。実行時に各セレクターの呼び出しを (stderr などに) ログに記録したいと考えています。
私の主な要件は、既存のコードを変更することではないため、各呼び出しの開始時に関数のパラメーターをログに記録することはできません。
プログラムの実行中に何らかのメソッドが呼び出された場合、たとえば
私はそれを次のようなものに置き換えたい:
出来ますか?
メソッドのスウィズリング、KVO、フォワードメッセージングについて読んだことがあります。
メソッドのスウィズリングを使用した現在のアプローチでは、無限の再帰が発生します。
block3
残念ながら、実行時に 1 つまたはいくつかのメソッドを生成することは不可能です。ありますNSSelectorFromString
が、ありませんImplementationFromString
。
UPD
DTrace util を調べましたが、非常に強力なようですが、私のニーズには合いません。Mac OS で SIP を無効にする必要があり、iOS では不可能か、ジェイルブレイクされたデバイスでは可能です。
メソッドのインターセプトに必要なのは、デバッグとプロダクション ビルド モードの両方で安定したカスタム「フレームワーク」を作成することです。
ios - フレームワークからAppDelegateのdidReceiveRemoteNotificationをスウィズルする方法
iOS アプリ (ポッド) のフレームワークを開発しています。スウィズルしたい
私のフレームワークで定義されたメソッドで。これは私のコードです:
しかし、コードを実行すると、originalMethod の値が nil のように見えるので、
nil を返します。私が間違っていることは何ですか?(私が言ったように、私はフレームワークを開発しているので、私は AppDelegate にアクセスできないことを考慮してください)
ios - UIImage.init(named:) のスウィズリングは、インスタンス メソッドを取得するときに nil を返します
初期化関数をスウィズルしよUIImage
うとしていますが、インスタンス関数を取得しようとすると nil が返されます。何か案が?