0

我查看了有关此问题的其他主题,但无法确定我的错误。

我对IOS编程很陌生。我正在尝试创建一个查看 2 个按钮的选定状态并确定按钮选定状态是否相同的程序。

我目前正在尝试使用模型来确定按钮的选定状态,然后将状态传递给标签。我有一个错误说:

“MatchTest”没有可见的@interface 声明选择器“doesItMatch”

我将不胜感激可能提供的任何帮助。
谢谢!

这是 MatchTest.h 文件

//  MatchTest.h
#import <Foundation/Foundation.h>

@interface MatchTest : NSObject
@end

这是 MatchTest.m 文件

//  MatchTest.m
#import "MatchTest.h"

@implementation MatchTest

-(NSString*)doesItMatch:(UIButton *)sender
{
    NSString* tempString;

    if(sender.isSelected)
    {
        tempString = @"selected";
    }
    else
    {
        tempString = @"not selected";
    }

    return tempString;
}
@end

这是 MatchViewController.h 文件

//  MatchViewController.h
#import <UIKit/UIKit.h>
#import "MatchTest.h"
@interface MatchViewController : UIViewController
@end

这是 MatchViewController.m 文件

//  MatchViewController.m
#import "MatchViewController.h"
@interface MatchViewController ()

@property (weak, nonatomic) IBOutlet UILabel *matchLabel;
@property (strong, nonatomic) MatchTest *match;

@end

@implementation MatchViewController

-(MatchTest *)match
{
    if(!_match) _match = [[MatchTest alloc] init];
    return _match;
}

- (IBAction)button:(UIButton *)sender
{
    sender.selected = !sender.isSelected;
    self.matchLabel.text = [self.match doesItMatch:sender];
}
@end
4

2 回答 2

2

doesItMatch在 MatchTest.h 文件中声明方法,如

在 MatchTest.h

-(NSString*)doesItMatch:(UIButton *)sender;

编译器无法在 .h 文件中归档 doesItMatch 方法的声明,这就是存在该错误的原因。

于 2013-08-19T08:17:11.707 回答
0

您尚未-(NSString*)doesItMatch:(UIButton *)senderMatchTest.h 文件中定义您的方法。您在 MatchViewController.h 文件中导入MatchTest.h文件,因此您需要定义方法或变量或属性以使此方法可用。

因此,根据您的错误日志,viewController 无法找到声明此方法的接口。

于 2013-08-19T08:23:48.377 回答