设置类属性会产生无法识别的选择器错误

时间:2013-12-04 17:19:26

标签: ios objective-c uibutton unrecognized-selector

我对目标c和iOS非常新。这是我的第一个应用程序,所以请耐心等待。

我只是试图制作一个页面,其中包含一些从文本文件中动态创建的按钮,这将在webview中打开一个页面。

我的代码基于此how can i pass any kind of parameter in UiButton action?

MyButton.h

#import <Foundation/Foundation.h>

@interface MyButton : UIButton
{
    NSString *_linkURL;
}
@property (nonatomic, retain) NSString *linkURL;
@end

MyButton.m

#import "MyButton.h"

@implementation MyButton
@synthesize linkURL = _linkURL;
@end

然后在我的ViewController.m文件中,我导入MyButton并尝试使用它来创建将URL作为自己的属性的按钮。

MyButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];
[button setLinkURL:URL]; //THIS IS THE LINE THATS GIVING ME THE unrecognized selector at instance error

然后我继续在buttonPressed方法中获取URL,但我似乎无法通过这一个错误。我不知道我做错了什么。

2 个答案:

答案 0 :(得分:5)

问题在于这一行:

MyButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

应该是:

MyButton *button = [MyButton buttonWithType:UIButtonTypeRoundedRect];

如上所述,您创建的是UIButton而不是MyButton的实例。

答案 1 :(得分:2)

你的问题在于这一行:

MyButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

您正在向UIButton投射MyButton,但UIButton类型的对象不具有MyButton对象的属性。你需要这样的东西:

MyButton *button = [[MyButton alloc] initWithType:UIButtonTypeRoundedRect];