2011-08-25 52 views
0

我正在研究一個抽象層,用於從UIWebView中的JavaScript調用到我的應用程序的本地部分。用塊參數反射地調用方法

爲此,我需要一個將JavaScript函數調用轉換爲對象的Objective-C消息的通用機制。除了在需要Block-Arguments的Objective-C對象上調用方法之外,這種方法已經很好了。

如何以通用方式調用此類方法而不必將NULL作爲塊參數傳遞。我想傳遞一個通用塊,然後可以迭代傳入它的所有參數(可變參數)。

要重新表述:是否有任何方法可以通過塊參數調用任何方法,儘管這些塊的具體類型(即簽名有所不同),以便我可以在隨後執行時捕獲傳入這些塊的參數?

回答

0

我還沒有嘗試過你正在做什麼,但我認爲我知道足夠說不幸,「不」。

一對夫婦的問題在這裏聯合起來反對你:

  • 塊都只有幾個街區,而且也得到一個函數指針轉到一個塊的標準方式(這是可以做到的,但不是在一個便攜式或面向未來的方式)。
  • 即使您有一個函數指針,也不能使用在運行時確定的大量參數進行調用,而無需使用特定於平臺的程序集。 C的唯一支持是使用va_args

(我希望我是錯的這件事,有人會糾正我,但我怕我不是。)