在iOS中声明条件委托方法

时间:2015-06-08 08:57:57

标签: ios objective-c delegates protocols

我正在寻找一种方法来声明委托方法的实现有条件地相互链接。我知道标记特定方法的@required@optional的方式。但是,我希望有一种方法可以根据需要标记方法,如果实现了另一种方法。这可能吗?

我喜欢做的事情是这样的:

考虑以下委托方法:

- (void) firstSuccessDelegateMethod;
- (void) firstErrorDelegateMethod;
- (void) secondSuccessDelegateMethod;
- (void) secondErrorDelegateMethod;

有没有办法宣布像

这样的东西

如果实施firstSuccessDelegateMethod,则需要firstErrorDelegateMethod 如果secondSuccessDelegateMethod已实施,则需要secondErrorDelegateMethod

谢谢!

2 个答案:

答案 0 :(得分:3)

可悲的是,这是不可能的,尽管你总是可以将两个委托方法合并为一个,例如,

- (void)delegateMethodWithResult:(id)result error:(NSError *)error 

答案 1 :(得分:0)

这不可能在运行时要求委托,但可以在运行时动态添加/实现方法。check that here

因此,唯一可能的选择是在触发时需要firstSuccessDelegateMethod并将firstErrorDelegateMethod添加到目标类,但最简单的方法是将两者结合起来,就像@johnpatrickmorgan所说的那样。