2012-06-01 33 views
6

Nếu tôi muốn sử dụng lại một giao thức thông báo cho bộ điều khiển xem bậc thầy của khi bộ điều khiển xem chi tiết đó bị như thế này: UIView notification when modal UIImagePickerController is dismissed?nơi để tuyên bố các giao thức để tái sử dụng trong Objective-C

nơi tôi sẽ tuyên bố giao thức này ? Có thực tiễn tốt nhất để giữ các giao thức trong các tệp riêng biệt không? Cảm ơn.

Trả lời

3

Thông thường tôi (sao chép các phương thức của Apple) khai báo các giao thức trên tiêu đề của lớp sẽ tương tác với các đại biểu của giao thức đó. (Ví dụ: tệp tiêu đề UIActionSheet giữ khai báo giao thức cho UIActionSheetDelegate.) Nó không thực sự quan trọng về mặt kỹ thuật nơi bạn khai báo các giao thức, miễn là bạn không có tham chiếu vòng tròn của các câu lệnh #import. Điều này thường không xảy ra vì lớp tương tác với giao thức làm như vậy để tránh cần phải #import tất cả các lớp khác sẽ thực hiện giao thức này. (UIActionSheet gửi tin nhắn đến các lớp của bạn khi nó được loại bỏ thông qua giao thức, và do đó không cần phải #import bất kỳ lớp nào của bạn.)

Nếu bạn có một giao thức và một số lớp không liên quan sẽ tương tác với các đại biểu giao thức, đó sẽ là một chỉ báo tốt để đặt giao thức trong tệp riêng của nó, bởi vì giao thức không thực sự liên kết với một lớp cụ thể.

1

Tôi nghĩ bạn nên khai báo một loại di của UIImagePickerController ở riêng files.Like ImagePickerCtrlCatagory.h và ImagePickerCtrlCatagory.m Trong ImagePickerCtrlCatagory.h, làm như thế này

#import <Foundation/Foundation.h> 
    @protocol ImagePickerCtrlDelegate; 
    @interface UIImagePickerController (DissappearDelegate){ 
     id <ImagePickerCtrlDelegate> delegate; 
} 
     @end 
Các vấn đề liên quan