問題タブ [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.
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でこれをテストしています。
iphone - NSInvocation; 変数はCFStringではありません
NSInvocationを使用して動的な呼び出しを行っています。
デバッガーでは、3つのオブジェクト変数すべてが3つの異なるNSCFString*を正しく指します。呼び出しが行われ、反対側で正しいメソッドに到達します。
ただし、デバッガーでは、そのパラメーターに「変数はCFStringではありません」というエラーが表示されます。さらに悪いことに; 3つの変数はすべて、同じメモリ位置を指します。
どうすればいいの?
objective-c - NSTimer で呼び出されるメソッドに引数を渡す方法
メソッドを呼び出すタイマーがありますが、このメソッドには 1 つのパラメーターが必要です。
する必要があります
現在、この構文は正しくないようです。NSInvocation を試してみましたが、いくつか問題がありました。
呼び出しはどのように使用すればよいですか?
objective-c - NSInvocation から NSString の結果を取得するにはどうすればよいですか?
次のコードは期待どおりに機能します。
しかし、それを に置き換えるとNSInvocation
、まったく異なる結果が得られます。
高低を検索しましたが、これを理解できません。何か助けはありますか?ありがとう!
iphone - NSInvocationOperation と戻り値 (BOOL)
こんにちは、私はこれらの呼び出し操作を持っています:
私の方法:
ブール値を返す必要があります....
どうすればこの値をキャッチできますか?
よろしく
objective-c - OCMock でブロック期待値を使用する
GHUnit と OCMock を使用して、iOS アプリでいくつかのテスト作業を行っています。
そのため、それらを統合するのに苦労しています。
次のコードはうまく機能します。
しかし、[[[mock stub] andReturn:@"255"] capitalizedString]; を変更すると、の中へ
「理由: 'NSCFString' は '255' と等しいはずです。等しいはずです」というエラーが表示されました。
2 つのステートメントはまったく同じことを行うべきだと思います。私が間違っている?
objective-c - NSInvocation をエンコードするには?
<NSCoding>
メソッドのカテゴリを追加してこれを修正できますか?
objective-c - NSInvocation クラスの setSelector メソッドの目的は何ですか?
その情報が既にsetSelector
.NSInvocation
invocationWithMethodSignature
オブジェクトを作成するNSInvocation
には、次のようにします。
セレクターを に渡したことに注意して[SomeObject instanceMethodSignatureForSelector: someSelector];
ください[invocation setSelector:someSelector];
。
足りないものはありますか?
iphone - NSInvocation の保持された引数を適切に解放する方法は?
保持されている引数は、NSInvocation の割り当てが解除されたときに解放されますか? それとも、NSInvocation の引数リスト内のオブジェクトに対して手動で解放する必要がありますか?
iphone - iOS でデリゲートを渡す
検索フォームを含む iOS アプリを開発しています。ユーザーが検索をクリックすると、NSInvocationOperation (これで問題ありません) を使用して別のスレッドを生成したいと考えています。このスレッドでは、データ レイヤー (別のクラス) を呼び出して、Web サービスからデータを取得します。他の引数 (検索語など) と共に、完了時に実行する必要がある ViewController サブクラスのメソッドをデータ層に渡す方法はありますか? .NET の BackgroundWorker のようなものですか?