从继承的类-ios实现方法的麻烦

时间:2013-08-19 08:08:42

标签: ios class methods model call

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

我是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

2 个答案:

答案 0 :(得分:2)

在MatchTest.h文件中声明doesItMatch方法 喜欢

在MatchTest.h中

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

编译器无法在.h文件中提交doItMatch方法的声明,这就是为什么会出现错误。

答案 1 :(得分:0)

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

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