このような UIButton にイベントを追加するために addTarget を使用しようとしました
EGOImageButton* image = [[EGOImageButton alloc] initWithPlaceholderImage:[UIImage imageNamed:@"screen.png"]];
[image setImageURL:[NSURL URLWithString:thumbnail]];
[image setFrame:CGRectMake(x, y, self.cellsize, self.cellsize)];
[image setTag: [self.photoIDs count]-1];
[image addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:image];
[image release];
関数定義は次のとおりです。
-(void)buttonTouched:(id)sender {
NSLog(@"Thumbnail Clicked");
}
これは EGOImageButton init 関数のコードです
- (id)initWithPlaceholderImage:(UIImage*)anImage {
return [self initWithPlaceholderImage:anImage delegate:nil]; }
- (id)initWithPlaceholderImage:(UIImage*)anImage delegate:(id<EGOImageButtonDelegate>)aDelegate {
if((self = [super initWithFrame:CGRectZero])) {
self.placeholderImage = anImage;
self.delegate = aDelegate;
[self setImage:self.placeholderImage forState:UIControlStateNormal];
}
return self;
}
エラーは次のようになります。
-[ NSCFType buttonTouched:]: インスタンス 0x6c804a0 に送信された認識されないセレクター 2012-06-06 01:36:59.061 Facebook のフォト コラージュ [2416:16103] *キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。 :]: 認識されないセレクターがインスタンス 0x6c804a0 に送信されました' *最初のスロー時のコール スタック: ( 0 CoreFoundation 0x0046a5a9 __exceptionPreprocess + 185 1 libobjc.A.dylib 0x01402313 objc_exception_throw + 44 2 CoreFoundation 0x0046c0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 1 CoreFoundation 3 0x003db966 __転送+ 966 4 CoreFoundation 0x003db522 _CF_forwarding_prep_0 + 50