問題タブ [nsinvocation]

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 投票する
7 に答える
1849 参照

objective-c - NSInvocation に特定の IMP を呼び出させる

NSInvocation特定の呼び出しを行う方法を探していIMPます。デフォルトでは、IMP見つけることができる「最も低い」もの(つまり、最近オーバーライドされたバージョン)を呼び出しますIMPが、継承チェーンの上位から呼び出す方法を探しています。IMP呼び出したいものは動的に決定されます。それ以外の場合は、キーワードなどを使用できますsuper

私の考えは、-forwardInvocation:メカニズムを使用してメッセージをキャプチャし (簡単で既に機能している)、それを変更して、実装でも最も遠い子孫の実装でもIMPないメソッドに移動することでした。super(難しい)

私が見つけた唯一のものはAspectObjectiveCですが、これには libffi が必要であるため、iOS とは互換性がありません。理想的には、これをクロスプラットフォームにしたいと思います。

何か案は?

免責事項:私はちょうど実験しています


@bbum のトランポリン機能のアイデアを試す

それで、私は物事をほとんどセットアップしたと思います。を介して正しく追加される次のトランポリンがclass_addMethod()あり、入力されます。

JMPの前に適切な自己と適切なIMPの両方が正しいことを確認し、_cmdパラメーターも適切に入っています。(つまり、このメソッドを正しく追加しました)。

しかし、何かが起こっています。nilself_cmd. また、EXC_BAD_ACCESS で何もないところにクラッシュすることもあります。アイデア?(アセンブリで何かをしたのは久しぶりです...) x86_64でこれをテストしています。

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

iphone - NSInvocation; 変数はCFStringではありません

NSInvocationを使用して動的な呼び出しを行っています。

デバッガーでは、3つのオブジェクト変数すべてが3つの異なるNSCFString*を正しく指します。呼び出しが行われ、反対側で正しいメソッドに到達します。

ただし、デバッガーでは、そのパラメーターに「変数はCFStringではありません」というエラーが表示されます。さらに悪いことに; 3つの変数はすべて、同じメモリ位置を指します。

どうすればいいの?

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

objective-c - NSTimer で呼び出されるメソッドに引数を渡す方法

メソッドを呼び出すタイマーがありますが、このメソッドには 1 つのパラメーターが必要です。

する必要があります

現在、この構文は正しくないようです。NSInvocation を試してみましたが、いくつか問題がありました。

呼び出しはどのように使用すればよいですか?

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

objective-c - NSInvocation から NSString の結果を取得するにはどうすればよいですか?

次のコードは期待どおりに機能します。

しかし、それを に置き換えるとNSInvocation、まったく異なる結果が得られます。

高低を検索しましたが、これを理解できません。何か助けはありますか?ありがとう!

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

iphone - NSInvocationOperation と戻り値 (BOOL)

こんにちは、私はこれらの呼び出し操作を持っています:

私の方法:

ブール値を返す必要があります....

どうすればこの値をキャッチできますか?

よろしく

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

objective-c - OCMock でブロック期待値を使用する

GHUnit と OCMock を使用して、iOS アプリでいくつかのテスト作業を行っています。

そのため、それらを統合するのに苦労しています。

次のコードはうまく機能します。

しかし、[[[mock stub] andReturn:@"255"] capitalizedString]; を変更すると、の中へ

「理由: 'NSCFString' は '255' と等しいはずです。等しいはずです」というエラーが表示されました。

2 つのステートメントはまったく同じことを行うべきだと思います。私が間違っている?

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

objective-c - NSInvocation をエンコードするには?

<NSCoding>メソッドのカテゴリを追加してこれを修正できますか?

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

objective-c - NSInvocation クラスの setSelector メソッドの目的は何ですか?

その情報が既にsetSelector.NSInvocationinvocationWithMethodSignature

オブジェクトを作成するNSInvocationには、次のようにします。

セレクターを に渡したことに注意して[SomeObject instanceMethodSignatureForSelector: someSelector];ください[invocation setSelector:someSelector];

足りないものはありますか?

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

iphone - NSInvocation の保持された引数を適切に解放する方法は?

保持されている引数は、NSInvocation の割り当てが解除されたときに解放されますか? それとも、NSInvocation の引数リスト内のオブジェクトに対して手動で解放する必要がありますか?

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

iphone - iOS でデリゲートを渡す

検索フォームを含む iOS アプリを開発しています。ユーザーが検索をクリックすると、NSInvocationOperation (これで問題ありません) を使用して別のスレッドを生成したいと考えています。このスレッドでは、データ レイヤー (別のクラス) を呼び出して、Web サービスからデータを取得します。他の引数 (検索語など) と共に、完了時に実行する必要がある ViewController サブクラスのメソッドをデータ層に渡す方法はありますか? .NET の BackgroundWorker のようなものですか?