Всякий раз, когда я создаю инициализации, который имеет делегат в соответствии с протоколом, я пишу инициализации, как это:INIT с протоколом делегата
- (id)initWithDelegate:(id<ProtocolToConform>)delegate;
Таким образом, у меня будет предупреждение, если создание объекта не соответствует к протокол.
Однако я заметил, что есть UIAlertView
метод инициализации выглядит следующим образом:
- (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ...
Делегат аргумент не указывает, в соответствии с протоколом UIAlertViewDelegate
? Какие-нибудь подсказки, почему Apple сделала это именно так?
Я думал, что они просто слишком ленивы, чтобы добавить это, или может быть, потому что все методы UIAlertViewDelegate являются необязательными, неважно, соответствует ли делегат протоколу или нет. – howanghk
, это не принесло бы никакой пользы в этом случае, это было бы просто дополнительной болью для соответствия протокола вашим классам. – holex