プロトコルに準拠するデリゲートを持つinitを作成するときはいつでも、次のようにinitを記述します。
- (id)initWithDelegate:(id<ProtocolToConform>)delegate;
このようにして、作成中のオブジェクトがプロトコルに準拠していない場合に警告が表示されます。
UIAlertView
ただし、 initメソッドは次のようになっていることに気付きました。
- (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ...
UIAlertViewDelegate
デリゲート引数は、プロトコルに準拠するように指定していませんか?Appleがそれをそのようにした理由の手がかりはありますか?