每當我創建一個具有委託符合協議的初始化我寫的初始化,因爲這:初始化與委託協議
- (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