0

ボタンのセレクターに複数のパラメーターを持つメソッドを追加しようとすると、キャッチされない例外 'NSInvalidArgumentException が原因でアプリを終了していますというエラーが発生します

[viewButton addTarget:self action:@selector(loadDocument: inView:) withObject:cerereIndemnizatie.fisier withObject:self.myWebview forControlEvents:UIControlEventTouchUpInside];

これが方法です

  -(void)loadDocument:(NSString*)documentName inView:(UIWebView*)webView
{
NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

}

4

1 に答える 1

1

なぜこれができると思うのか、なぜセレクターUIButtonに応答するのかわかりませんaddTarget:selector:withObject:withObject:forControlEvents:...(真剣に、推測しないで、ドキュメントを読んでください...)

関連付けられたオブジェクトを使用して、同様の動作を実現できます。

UIButton *btn = // create the button
objc_setAssociatedObject(btn, "firstObject", someObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(btn, "secondObject", otherObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
[btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

- (void)click:(UIButton *)sender
{
    id first = objc_getAssociatedObject(btn, "firstObject");
    id second = objc_setAssociatedObject(btn, "secondObject");
    // etc.
}
于 2012-11-15T12:20:31.853 に答える