关于objectiveC中的delegate的理解
举个例子,假设两个View:superView 和 subView,在subView中,实现了Touchesbegin 函数。 现在要做的是:当你点击subview的时候,要让superview中的某个变量+1,这时就需要用到delegate。 //SubView.h @protocol SubViewDelegate<NSObject> -(void)changeValue:(id)sender; //这个方法可以在subView中调用,在代理中实现 @end @interface SubView: UIView { id<SubViewDelegate> delegate; //这个是保存代理的变量。 } @property(assign)id<SubViewDelegate> delegate; @end //SubView.m @implementation SubView @synthesize delegate; ...................... ...................... - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event { [self.delegate changeValue:self];//这个就是调用了。。 } @end //SuperView.m中实现changeValue函数 .................... //SuperView.m中某个位置 SubView *subView = [[SubView alloc]init]; subView.delegate = self;//讲subView的delegate设置为superView。保存在delegate变量中。 -(void)changeValue:(id)sender { someVar++; NSLog(@"in changeValue function."); }