我的情况:
一个仪表板控制器,用于在其中注册小部件并自动构建视图。
要填充仪表板的小部件类,他们采用<widget>
协议(需要一些非正式方法),并且需要在仪表板类中注册,以便仪表板单例知道谁想要进入
仪表板类有+(void)register:(Class<widget>)w;
,只需注册想要进入NSArray的类
我需要每个窗口小部件类自动调用该方法。在c ++中我用来制作一个布尔静态变量,我将用该方法初始化。 语言= objective-c
答案 0 :(得分:2)
在第一次加载类时,objective-c运行时将调用两个方法。 +load
和+initialize
。我相信您可以通过在[self register]
内调用+initialize
来完成您的工作。
答案 1 :(得分:0)
你可以这样做的方法是运行时:
+register:
方法或其他关于步骤#2,您不能使用+conformsToProtocol:
方法,因为您将迭代的其中一个类是NSZombie
类,每当您调用其上的方法时都会触发异常。因此,您需要使用class_conformsToProtocol()
运行时函数。