6

プロトコルを再利用して、次のように詳細ビューコントローラが閉じられたときにマスタービューコントローラに通知したい場合: モーダルUIImagePickerControllerが閉じられたときのUIView通知?

このプロトコルはどこで宣言しますか?プロトコルを別々のファイルに保持することがベストプラクティスですか?ありがとう。

4

2 に答える 2

3

通常、私(Appleのメソッドをコピー)は、そのプロトコルのデリゲートと対話するクラスのヘッダーでプロトコルを宣言します。#import(たとえば、UIActionSheetヘッダーファイルはUIActionSheetDelegateのプロトコル宣言を保持します。)ステートメントの循環参照がない限り、プロトコルを宣言する場所は技術的には重要ではありません。#importプロトコルと相互作用するクラスは、プロトコルを実装する他のすべてのクラスを必要としないようにするため、これは通常は発生しません。(UIActionSheetは、プロトコルを介して却下されたときにクラスにメッセージを送信するため、クラスを#importする必要はありません。)

プロトコルがあり、いくつかの無関係なクラスがそのプロトコルのデリゲートと対話する場合、プロトコルは実際には1つの特定のクラスに関連付けられていないため、プロトコルを独自のファイルに配置するための良い指標になります。

于 2012-06-01T02:34:24.097 に答える
1

UIImagePickerControllerのカテゴリを別々のファイルで宣言する必要があると思います。ImagePickerCtrlCatagory.hとImagePickerCtrlCatagory.mのようにImagePickerCtrlCatagory.hで、次のようにします。

    #import <Foundation/Foundation.h>
    @protocol ImagePickerCtrlDelegate;
    @interface UIImagePickerController (DissappearDelegate){
        id <ImagePickerCtrlDelegate> delegate;
}
        @end
于 2012-06-01T02:46:46.127 に答える