方法原型中的错误

时间:2014-08-30 23:00:40

标签: objective-c xcode cocoa

当我使用委托方法关闭程序中的屏幕时,我正在从Xcode遇到此错误。错误如下所示:

  

预期';'方法原型之后

委托方法如下所示:

#pragma mark - PlayerDetailsViewControllerDelegate

- (void)playerDetailsViewControllerDidCancel:(PlayerDetailsViewController *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

但是,如果没有分号,这个方法就完全满足了。

- (void)playerDetailsViewControllerDidSave:(PlayerDetailsViewController *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

在检查我的代码时,我不太确定应该从哪里开始寻找修复此错误。当我宣布它们时,我需要认识到两者之间是否存在差异,或者我的程序中的其他地方是否存在问题?

以下是PlayerDetailsViewController.h文件的其余部分:

    #import <UIKit/UIKit.h>
#import "PlayerDetailsViewController.h"

@class PlayerDetailsViewController;

@protocol PlayerDetailsViewControllerDelegate <NSObject>
- (void)playerDetailsViewControllerDidCancel:
(PlayerDetailsViewController *)controller;
- (void)playerDetailsViewControllerDidSave:
(PlayerDetailsViewController *) controller;

@end

@interface PlayerDetailsViewController : UITableViewController

@property (nonatomic, weak) id <PlayerDetailsViewControllerDelegate> delegate;

- (IBAction)cancel:(id)sender;
- (IBAction)done:(id)sender;

#pragma mark - PlayerDetailsViewControllerDelegate

- (void)playerDetailsViewControllerDidCancel:(PlayerDetailsViewController *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)playerDetailsViewControllerDidSave:(PlayerDetailsViewController *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

@end

如果这段代码看起来很熟悉,那是因为它。我正在研究Ray Wenderlich教程here

我在苹果文档中找到了这个问题的答案,但这两篇文章都没有真正帮助回答我的问题,或者至少帮助我理解我的问题。

我应该从哪里开始搜索我的问题?

P.S。对不起,我试图发布苹果文章的两个链接,但我必须有10个声望才能发布多个链接。如果含糊不清,你可能还记得那些日子;)

2 个答案:

答案 0 :(得分:0)

Xcode会显示错误在哪一行。双击错误,这应该可以解决问题。

答案 1 :(得分:0)

标题中的问题在于:

#pragma mark - PlayerDetailsViewControllerDelegate

- (void)playerDetailsViewControllerDidCancel:(PlayerDetailsViewController *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)playerDetailsViewControllerDidSave:(PlayerDetailsViewController *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

您已将这些方法的实现放在头文件中! 头文件声明了类的公共方法原型 - 那些不是原型,那些是你的委托方法 implementation 。您已在协议声明中声明的原型。