Protocol 类似接口(interface), 但是由其他类实现
//定义Protocol @protocol UIScrollViewDelegate @optional - (UIView *)viewForZoomingInScrollView:(UIScrollView *)sender; - (void)scrollViewDidEndDragging:(UIScrollView *)sender willDecelerate:(BOOL)decelerate; @end //在自己的类接口中声明 @interface UIScrollView : UIView @property (nonatomic, weak) id <UIScrollViewDelegate> delegate; @end //在实现该接口的类中声明要实现,并实现所有require的方法 //把delegate设为自己 @interface MyViewController : UIViewController <UIScrollViewDelegate> @property (nonatomic, weak) IBOutlet UIScrollView *scrollView; @end @implementation MyViewController - (void)setScrollView:(UIScrollView *)scrollView { _scrollView = scrollView; self.scrollView.delegate=self; //compiler won’t complain } - (UIView *)viewForZoomingInScrollView:(UIScrollView *)sender { return ... }; @end
相关链接:
delegate和protocol的解释
http://justcoding.iteye.com/blog/1453902