2011-03-05 4 views
1

私のアプリでは、JavaScriptCore APIを使用して、私のCocoaクラスにCコールバックを持つWebViewコンテキストにJS関数をインストールします。今すぐコールバックを渡すことができる方法はありませんuserData/refconコールバックがどのクラスに属しているかを知るためのポインタ。クラスポインタのないCコールバック

ポインタを渡さずにこれを解決する方法はありますか?グローバルは他のクラスインスタンスによって上書きされるため動作しないようです。

+0

WebScriptingプロトコルを試してみたいと思うかもしれませんが、これは非常に簡単です。;-) –

答えて

1

(複数/同時呼び出しの可能性が高いため)グローバルが機能しない場合は、何らかのコンテキスト情報が必要です。

APIがセッション#、割り当てられた構造体、なんらかの一意の識別子を返す場合は、その識別子と必要なObjective-C GoopをマッピングするNSMapTableを設定できます。

+0

JSContextRefは、ドキュメントのすばやくスキミングに基づいて使用することになります。 – Tommy

+0

私はちょうど 'NSMutableDictionary'を設定し、' NSValue'sでラップされた 'JSObjectRef'ポインタをキーとして使うだけです。 –

関連する問題