問題タブ [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 投票する
4 に答える
1289 参照

iphone - デリゲートの存続期間の終わりに、オブジェクトから遅延後にメソッドを呼び出す

独自のコンテキストでコアデータの変更を作成するモーダルビューコントローラーがあり、[完了]をクリックすると、変更が保存され(マージ変更通知がディスパッチされます)、デリゲートに通知して却下されます。

私の問題は、メインコンテキストが編集コンテキストの変更とマージされた後、デリゲートがメッセージを受信する必要があることです。次の実行ループでデリゲート呼び出しを実行したいのですが、オブジェクトの有効期間に問題があります。私は次のことを考えました:

  1. 電話をかけてください[delegate performSelector:withObject:afterDelay:]。ただし、そのメッセージは認識されていないようです。私のデリゲートはNSObjectプロトコルに準拠していますが、遅延のある実行セレクターは含まれていません。
  2. ビューコントローラでメソッドを作成しますinformDelegateWithObject:。デリゲートメソッドを呼び出し、遅延後にそのメソッドを呼び出します。つまり[self performSelector:@selector(informDelegateWithObject:) withObject:.. afterDelay:..]。これは機能する可能性がありますが、ビューコントローラが閉じられているため、遅延が数秒の場合、メモリから解放され、呼び出し時にクラッシュが発生することはありませんか?
  3. のインスタンスを作成しますNSInvocation。私はこれについて考えました、しかし、このオブジェクトの寿命は何ですか?を使用して作成した場合[NSInvocation invocationWithMethodSignature:]NSInvocationオブジェクトは自動解放されず、次の実行ループに使用されませんか?数秒は言うまでもありません。また、モーダルビューコントローラが閉じられて解放されているため、呼び出しオブジェクトをビューコントローラに保存できません。

助言がありますか?

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

iphone - NSInvocation メソッドへの引数を持つ関数

これらの2つの機能を使用しているコントローラービューがあります:

したがって、私の ressourceManager では、2 番目の関数の詳細を次に示します。

問題は、2 番目の関数が機能していないことです (ライブラリ ルーチンが順不同で呼び出されます)。これは、1 番目の関数を同じ方法で既に呼び出しているためです (引数を使用して多くのクエリを同時に実行できるようにしたい)。NSInvocation を使用するとこの問題を解決できると聞きましたが、NSInvocation を使用してコードを変換する方法がわかりません。誰かが私を助けることができますか?

よろしくお願いします、

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

iphone - NSObject のオーバーライドとクラス変数の追加

次のコードを使用して、複数のパラメーターが渡された遅延の後にセレクターを実行しています。

http://nifty-box.com/blog/2006/12/nsinvocation-cleans-code.html

それは非常にうまく機能しますが、これを拡張して次のものと同等のものをサポートする必要があります。

[NSObject cancelPreviousPerformRequestsWithTarget:self]

(この場合のターゲットは自己ではなく、_UFLatePerformer のインスタンスになると思います)

これを行う方法はありますか?私のビューの割り当て解除は、残りの遅延パフォーマンス要求をすべて強制終了できますか?

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

iphone - NSInvocationを使用してメインスレッドでセレクターを実行する

メインスレッドでアニメーションを実行したいのですが(UIKitオブジェクトはスレッドセーフではないため)、別のスレッドで準備します。私は持っています(baAnimation-CABasicAnimationは以前に割り当てられ、初期化されています):

私は得る:

***+ [NSCFStringの長さ]:認識されないセレクターがクラス0x1fb36a0に送信されました

呼び出し:

しかし、[workView.layer addAnimation:baAnimation forKey:@"someViewAnimation"];正常に動作します。私は何が間違っているのですか?

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

iphone - NSInvocation オブジェクトが iphone sdk に割り当てられない

私がやっている

しかし、この行を処理した後でも、私の _operation オブジェクトは nil です。

ここでのセレクターは、実際に私が書いている関数で、次のようなものです。

}

誰か私が間違っているところを指摘してください。

事前にサンクス。

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

iphone - NSInvocation でアプリがクラッシュする

次のように NSInvocation を使用しています。

私のinitでは、これをviewDidLoadに書いています:

そして、私はそれを次のように呼んでいます:

指定された行でアプリケーションがクラッシュしています。誰でも私を助けてもらえますか?

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

objective-c - NSInvocationリーク

PerformSelectorInBackgroundを使用してセレクターをバックグラウンドスレッドで起動するようにNSInovcationシステムをセットアップしようとしています:-これまでのところ、インスタンスメソッド(-)でシステムを実行するとすべてが成功しますが、クラスメソッド(+)もサポートしたいと思います。両方のタイプのクラスにinvokeInBackgroundThreadを提供するようにコードを調整し、1つの問題を除いてすべてが機能しました。クラスメソッドが呼び出されると、コンソールに「プールが配置されていない状態で自動解放されました」というメッセージが殺到します。何が原因なのかわかりません。DDFoundationオープンソースプロジェクトに基づくコードを以下に示します。




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

objective-c - NSInvocation を使用した UIButton

ボタンを押すと特定のオブジェクトが渡されるように、プログラムでボタンを追加しようとしています。「認識されないセレクターが送信されました」という例外が引き続き発生します。コードの問題点を教えてください:

さらに、同じクラスのメソッドは次のようになります。

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

c++ - NSInvocationがc++配列にポインタを渡さない

私は根本的な間違いを犯していると思いますが、私は一生それを見ることができません。

C ++クラス(ロックされている)内からObjective-Cオブジェクトのメソッドを呼び出しています。NSInvocationを使用して、この他のオブジェクトのデータにアクセスするためだけに何百ものメソッドを作成する必要がないようにしています。

これらは私が行っているステップです。これは私の最初の呼び出しであり、私は合格したいと思いs2ます。コンパイル可能な例を実際に提供することはできませんが、うまくいけば、それは私の側のDUHRRRRRの問題にすぎません。

これは呼び出されているViewメソッドです

Invoke Unionはユニオンなので、NSInvocationによって返されるfloat値を取得できます。

これはデータオブジェクトのメソッドです(pthreadはlock()およびunlock()でロックされています)。

DCMPixオブジェクトのメソッド(変更できません。ライブラリの一部です)は次のとおりです。

アクセスしようとするとクラッシュしますd[0]BAD_EXC_ACCESS これは、解放されたメモリ、またはスコープ外のメモリにアクセスしていることを意味します。

ポインターへのポインターを追跡するのに迷っています。2つのfloat値は(他のメソッドの他の情報と同様に)正常に検出されfloat*ますが、パラメーターとしてaを要求するのはこれだけです。私が理解していることから、このconvertPixX:メソッドはMac OS 9用に作成されたCプログラムから変換されたものです...そのため、値としてc-arrayを要求しoutます...と思います。

とにかく、どんな洞察も大歓迎です。

私は次のような値を送信しようとしました:

しかし、それはSIGKILL-に加えて、それは偽物で間違っていると確信しています。...しかし、私は試しました。

とにかく...ポインタ!クロスランゲージ!ああ!

ありがとう、

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

objective-c - iOS4.0+ での iPhone Simulator NSInvocation の問題の処理方法

iPhone Simulator iOS4.0 以降の場合、NSInvocation は例外を適切に処理しません。objc_msgSend を使用する回避策を見つけました。以下の呼び出しで objc_msgSend(target_, [invocation selector]) として試し、 createResponseFromInvocation() の下の [invocation invoke] をコメントアウトすると、ハングします。obj_msgSend を呼び出すさまざまな方法を試しましたが、うまくいきませんでした。