我的情況:自動調用目標C類方法
儀表板控制誰註冊裏面的部件和自動生成的視圖。
控件類是要填充的儀表盤,誰採用
<widget>
協議(需要進行一些非正式的方法),並需要在儀表盤類,以便在儀表板單知道誰希望成爲註冊。儀表板類有
+(void)register:(Class<widget>)w;
,簡單地註冊誰願意在一個NSArray
我需要每個插件類,自動調用method.in C++我用來做一個布爾靜態變量,我會的類用該方法初始化。 Language = objective-c
我的情況:自動調用目標C類方法
儀表板控制誰註冊裏面的部件和自動生成的視圖。
控件類是要填充的儀表盤,誰採用<widget>
協議(需要進行一些非正式的方法),並需要在儀表盤類,以便在儀表板單知道誰希望成爲註冊。
儀表板類有+(void)register:(Class<widget>)w;
,簡單地註冊誰願意在一個NSArray
我需要每個插件類,自動調用method.in C++我用來做一個布爾靜態變量,我會的類用該方法初始化。 Language = objective-c
當第一次加載類時,objective-c運行時將調用兩個方法。 +load
和+initialize
。我相信你可以通過從+initialize
內撥打[self register]
來完成。
'+ initialize'只在類被使用*時被調用,而不是在被加載時被調用。由於該程序很可能在註冊之前不知道該類,所以'+ load'會更合適。 – ughoavgfhw
所以解決方案只是覆蓋該方法? –
這確實取決於寄存器應該做什麼。我發現所描述的整個架構是...壞 –
你能做到這一點的方法是與運行時:
+register:
方法或任何關於步驟#2,你可以」請使用+conformsToProtocol:
方法,因爲您要迭代的類中有一個類是NSZombie
類,只要調用方法就會觸發異常。因此,您應該使用class_conformsToProtocol()
運行時功能。
請使用正確的格式。 – vikingosegundo