在我的應用程序中,我使用JavaScriptCore
API在WebView上下文中使用C回調在我的Cocoa類中安裝JS函數。現在我無法通過回調指針來知道回調屬於哪個類。不帶類指針的C回調
有沒有辦法解決這個問題,而不通過指針?全局變量似乎無法工作,因爲它們被其他類實例覆蓋。
在我的應用程序中,我使用JavaScriptCore
API在WebView上下文中使用C回調在我的Cocoa類中安裝JS函數。現在我無法通過回調指針來知道回調屬於哪個類。不帶類指針的C回調
有沒有辦法解決這個問題,而不通過指針?全局變量似乎無法工作,因爲它們被其他類實例覆蓋。
如果全局不起作用(由於多次/併發調用,很可能),那麼您需要某種上下文信息。
如果API返回任何類型的唯一標識符 - 會話#,分配的結構體,任何東西 - 您都可以設置一個NSMapTable,它映射該標識符和您可能需要的任何Objective-C goop。
基於對文檔的快速瀏覽,JSContextRef可能會用到。 – Tommy 2011-03-05 02:21:46
我剛剛設置了一個'NSMutableDictionary',並且簡單地使用'NSValue'中包含的'JSObjectRef'指針作爲關鍵字。 – 2011-03-05 20:44:12
可能想嘗試一下我提到的Web腳本協議,這樣做很容易...... ;-) – 2011-03-05 14:41:31