我有一组控制器,其中大多数都具有相似的功能。
例如:
子类化在这里不是一个真正的选项,因为我特别不希望控制器B有方法1。
协议也不是很理想;他们仍然要求我在每个控制器中定义我的方法的副本。
是否无法在一个地方定义方法并在目标C中需要时将此功能混合到类中?
答案 0 :(得分:1)
答案 1 :(得分:0)
根本不可能使用课程。由于我猜这些方法需要访问某些控制器的字段,因此您可以使用一个函数来接收指向UIViewController
的指针作为参数,并从函数内部访问其字段。
如果您使用ControllerA
,ControllerB
或ControllerC
,则每种方法的行为方式应略有不同,那么您可以使用isKindOfClass
方法。例如:
void method1(UIViewController* controller) {
if( [(id) controller isKindOfClass:[ControllerA class]] ) {
//do something
}
}