每当我创建一个具有委托符合协议的初始化我写的初始化,因为这:初始化与委托协议
- (id)initWithDelegate:(id<ProtocolToConform>)delegate;
这样,我将有一个警告,如果创建的对象不符合协议。
但是我注意到,即UIAlertView
init方法是这样的:
- (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ...
委托参数没有指定符合UIAlertViewDelegate
协议?任何线索为什么苹果这样做?
我以为他们只是懒得补充一点,还有可能是因为所有的UIAlertViewDelegate方法是可选的,它不一样,如果委托符合协议或没有关系。 – howanghk
在这种情况下它不会带来任何好处,将协议与您的课程相一致将会带来额外的痛苦。 – holex