問題タブ [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.

0 投票する
1 に答える
3192 参照

objective-c - 既存の共有デリゲートからのメソッドのオーバーライド/スウィズリング

私たち自身が完全に代理人になることなく、既存の代理人からの特定の機能のみをオーバーライドすることは可能ですか?

ターゲットIMPを自分のものに置き換えてみましたが、機能しませんでした:'(

より詳しく:


動作していません!私のメソッドは呼び出されていません:(

0 投票する
1 に答える
4190 参照

c# - HLSL Swizzle-C#で

HLSLにあるスウィズル機能をC#で実装する方法を探しています。これが何であるかをよく知らない人のために、ベクトル要素に簡単にアクセスするために使用されます。

多くのプロパティを作成することが可能です(可能な組み合わせごとに1つ)。Linq経由でできるかもしれないと感じていますが、あまり経験がありません。

XNAにそのタイプのようなものがあるかどうかはわかりませんが、これが私が使用するすべてであるため、つまり、XNAがある場合は、そのパスをたどりたくありません。

ありがとう。

0 投票する
1 に答える
24286 参照

iphone - メソッド Swizzle (iPhone デバイス)

JRSwizzle と MethodSwizzle の両方を試しました。シミュレーターでは正常にコンパイルされますが、デバイス (3.x) 用にコンパイルしようとすると、大量のエラーがスローされます。

iPhoneでスウィズルをした人はいますか?トリックは何ですか?

ティア

0 投票する
5 に答える
3495 参照

c - ディスクポインタはどのように機能しますか?

複雑なデータ構造 (ツリーなど) をディスクに保存したいとします。データ構造のノードを接続する内部ポインターはポインターですが、これらのポインターをディスクに書き込むことはできません。データ構造を読み戻すと、メモリの場所が変更されるためです。

では、ポインターをディスクに保存する正しい方法は何でしょうか? 答えは(ファイル、オフセット)と同じくらい簡単ですか、それとも何か不足していますか?ポインターがどのように (ファイル、オフセット) ペアに変換され、また元に戻されるかは直感的にわかりますが、注意すべき微妙な点はありますか?

編集:私は、データベースが内部でこれを行う方法に特に興味があることを言及する必要があります。XMLベースの回答には感謝していますが、私はおそらく質問を必要以上に一般的にしました.

0 投票する
2 に答える
17953 参照

ios - iOSでクラスメソッドをスウィズルするには?

メソッドの入れ替えは、インスタンス メソッドに最適です。ここで、クラス メソッドをスウィズルする必要があります。それを行う方法はありますか?

これを試しましたが、うまくいきません:

0 投票する
3 に答える
1032 参照

iphone - 実行時に XIB からロードされた UIImage のコンテンツを置き換える

私が開発している概念については、XIB ファイルを手動でロードする必要があり、クラスとインスタンス メソッドのスウィズリングを使用して、UIImage クラスの imageCustomNamed、imageCustomWithContentsOfFile、および imageCustomWithCGImage と UIImageView の initCustomWithImage への呼び出しをインターセプトすることができました。私がしたいのは、画像名を検出し、設計時にIBで設定されたものの代わりに、オンザフライでレンダリングされたコンテンツに置き換えることです。

例えば:

XIB に Image プロパティが "About.png" に設定されている UIImageView オブジェクトがある場合、その画像の読み込みをインターセプトし、特定の条件に応じて別の画像に置き換える必要があります。UIImageView オブジェクトがデザイン時に設定された画像を読み込んだ後で画像を置き換えても問題ありませんが、UIImageView のコンテンツを設定するために使用された UIImage の元の名前はどこにも保存されていないようです。

事前にXIBファイルの内容がわからないため、IBOutletsを使用できません。これは、特定の XIB だけでなく、あらゆる XIB で機能するクラスです。

カスタム メソッドは実際にはデフォルトのメソッドの代わりに呼び出されていますが、XIb をロードするときに、システムは引数として CGImageRef を受け入れる imageCustomWithCGImage を使用するように見えます。それから、元を知る方法はありません(つまり、画像ファイル名)

画像の読み込みを傍受する方法について何か考えはありますか?

0 投票する
1 に答える
1414 参照

macos - メソッド スウィズリングを使用した SIMBL

SIMBL を使用してフックする外部アプリの一部の機能をオーバーライドする際に、大きな問題が発生します。

このアプリには、「AppClass」というクラスがあります。このクラスには関数があり、

これは、バイナリのクラスダンプから取得しました。インターフェイス全体は次のように定義されます。

この関数を jr_swizzleMethod:withMethod:error: でオーバーライドしようとしています:

ドキュメントが不足しているため、これが私が思いついたものです。

それで十分ですよね?しかし、コンパイル時に次のエラーが発生します。

これを解決するにはどうすればよいですか?

0 投票する
3 に答える
4599 参照

ios - カテゴリでメソッドを上書きするときに元の実装を呼び出す方法は?

私は物事が実際にどのように機能するかを理解しようとしています。そのため、カテゴリを使用して特定のメソッドを上書きすると、興味深いNSLogが得られると思いました。

スーパーとセルフはここでは機能しません。-hitTest:withEvent:の元の実装を呼び出す方法はありますか?UIViewで-hitTest:withEvent:が呼び出されるたびにNSLogが必要です。

それは個人的な学習目的のためだけです。イベント配信の様子を見たいです。

0 投票する
3 に答える
2641 参照

c++ - C++ でのファイルへのポインターの保存

学校のコース用にゲームを開発しています。割り当ての 1 つは、ゲームをファイルに保存し、後で同じファイルからゲームをロードできるようにすることです。

私が抱えている問題はポインターです。私はスタック上に何も割り当てていません (たとえば、アイテムの所有権のため)。そのため、すべてのクラスは、参照が必要なものへのポインターを持っています。

これは非常に簡単に解決できますが (各オブジェクトに ID を割り当て、ポインターの代わりにその ID を保存します)、実際の問題は多重継承に伴います。

クラス Actor を例にとってみましょう。これは次のようになります: class Actor : public Object, public ItemOwnerwhereObjectは、retain count と release、retain および autorelease メソッドを持つ Obj-C スタイルの基本クラスです。ItemOwner は、virtual bool add(Item *item) = 0;、 、virtual void remove(Item *item) = 0;およびvirtual bool transfer_ownership(Item *item, ItemOwner *new_owner) = 0;

さて、本当の問題は、どのクラス (複数可?) に ID が必要かということです。また、Item には ItemOwner へのポインターがあり、Room には Actor へのポインターがあります。アクターは一度だけ保存する必要があります。

各スーパークラス (Object、ItemOwner など) に ID を割り当てることを考えましたが、Actor へのポインタがある場合、そのActor は常に含まれる Object と同じアドレスを持ちます(Actor *foo = new Actor(); foo == (Object *)foo)か? ゲーム内のすべてのクラスに ID が必要になるわけではありません。

ご意見やご提案をいただければ幸いです。

0 投票する
1 に答える
1549 参照

iphone - iPhoneでNSLog機能をカスタマイズする

Objective C でセレクターとメソッドのメソッド スウィズリングを実行できることはわかっています。NSLog などの関数をカスタム関数にスウィズルすることは可能ですか。カスタム関数に NSLog と共にいくつかの機能を追加したかったのです。

編集:

最終的に、内部で NSLog を呼び出す別の関数を使用することになりました。