【发布时间】:2012-11-12 10:19:03
【问题描述】:
我有 2 节课。第一个是Label,另一个是LabelGestureRecognizer。在 LabelGestureRecognizer 中有一个名为 getName 的方法,我想通过 Label 类调用该方法。
下面是我的问题的一个简单示例。
我正在尝试调用方法“getName”,但我收到一条错误消息:
“‘LabelGestureRecognizer’没有可见的@interface声明选择器‘getName:’”
ViewController.h:
@property (nonatomic, strong) UILabel *valueLabel;
ViewController.m:
- (void)viewDidLoad
{
valueLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 366, 320, 50)];
valueLabel.textAlignment = UITextAlignmentCenter;
valueLabel.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:valueLabel];
}
- (void) wheelDidChangeValue:(NSString *) newValue {
self.valueLabel.text = newValue;
}
标签.h:
@protocol LabelDelegate <NSObject>
@required
-(void) wheelDidChangeValue:(NSString *) newValue;
@end
@class LabelGestureRecognizer;
LabelGestureRecognizer.m:
- (NSString *) getName:(int) position
{
NSString *resultat = @"";
switch (position) {
case 0:
resultat = @"Test 1";
break;
case 1:
resultat = @"Test 2";
break;
default:
break;
}
return resultat;
}
LabelGestureRecognizer.h:
@interface LabelGestureRecognizer : UIGestureRecognizer
{
NSDate *previous;
double current;
}
标签.m:
LabelGestureRecognizer *recognizer = [[LabelGestureRecognizer alloc] init];
[self.delegate wheelDidChangeValue:[self getName:0]];
【问题讨论】:
-
" 我有一个名为 Label.m 的类,我想从 LabelGestureRecognizer 类中调用一个名为 getName 的方法。" 这看起来有点令人困惑。根据示例,
getName在LabelGestureRecognizer中,您正尝试从Label类中调用。但你的说法正好相反。哪个是正确的? -
我认为错误消息“'LabelGestureRecognizer' 没有可见的@interface 声明选择器'getName:”清楚地表明您没有在 .h 文件中声明 getName 方法。您能否将 .h 文件代码添加到问题中。我确定您没有在此处声明或使用错误的签名声明。
-
我已经用上面的 .h 文件更新了我的答案。请检查并告诉我。
标签: iphone ios class methods label