我有几个 UIImageViews 包含在 UIView 中。我的想法是当 UIImageView 被触摸时, UIView 可以通过委托知道哪个被触摸。
这是我的代码
MyImageView.h
@protocol MyImageViewDelegate
-(void)toucheDelegate:(id)sender;
@end
@interface MyImageView:UIImageView{
id<MyImageViewDelegate> delegate;
}
@property(assign) id<MyImageViewDelegate> delegate;
@end
MyImageView.h
@implementation MyImageView
@synthesize delegate
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.delegate touchDelegate:self];
}
我的视图.m
-(void)functionA{
for(int i=0;i<4;i++){
MyImageView *imageView=[[MyImageView alloc] init];
imageView.delegate=self; //Here it gives a warning saying Assigning to 'id<MyImageViewDelegate>' from incompatible type 'MyView *'
[self addSubview:imageView];
[imageView release];
}
}
-(void)touchDelegate:(id)sender{
NSLog(@"in superview");
}
异常是无法识别的选择器发送到实例 0x7526c30。这是什么意思?
我是目标 c 的新手,我对这个委托的事情或我在代码块中提到的警告不是很清楚。有什么问题?有什么建议吗?