2011-04-18 46 views
1

我一直在iOS项目工作一段时间,但现在我有一个错误,这真让我困惑,只要我无法修复它我甚至不能编译该项目,所以我需要一些认真的帮助!同样的错误我所有的标题 - 错误:预期'='...'协议'之前

这一切都始于一个:

错误:预期 '=', ' ' ';', 'ASM' 或' 属性' '协议'

在PHCluesListViewController.h前。这个班长期以来一直没有改变,而我在错误时刻所做的工作与这个班级毫无关系。

这是什么样子:

#import <UIKit/UIKit.h> 

@protocol PHCluesListViewControllerDelegate; 

@class PHClueListTableViewController; 

@interface PHCluesListViewController : UIViewController { 

    IBOutlet PHClueListTableViewController *clueListTableViewController; 

    id <PHCluesListViewControllerDelegate> delegate; 
} 

- (void)mapDelegate; 

@property (nonatomic, assign) id <PHCluesListViewControllerDelegate> delegate; 

@end 

@protocol PHCluesListViewControllerDelegate 

- (void)mapUp:(PHCluesListViewController *)controller; 

@end 

有没有语法错误并没有什么错,在这方面无论是代码。后来我会知道,如果你从头文件中拿走所有的代码,那么错误会移动到另一个随机头文件,或者如果你要导入另一个头文件,错误将会移到这个头文件中。

我试着重新启动xcode,将项目移动到新的项目中,将代码重写为新文件并将该项目移动到另一个xcode版本的计算机 - 但没有运气。

我可以在我的电脑上运行其他xcode项目。

在我看来,xcode正试图以某种不需要的方式在这个特定的项目中编译我的头文件。

帮助将不胜感激,先谢谢了!

----------编辑! ----------

感谢您的快速回复!尽管我找到了答案。

错误是一个“d”写在一个完全不同的文件/类实现的界限。偶然发现......

如果其他人会发生类似的情况;检查@end之后或@interface/@实现之前写入的信件或任何其他会“切断常用语法的边缘”的信件。

很难找到这样的错误的原因,我有点惊讶,我发现它在80个文件(只有4.5小时)中如此之快。

祝你好运!

+0

如果这影响项目/目标中的每个源文件,请检查相应的前缀头(.pch)。 – 2011-04-18 22:33:47

+0

尝试使用铿锵编译它,如果你不是;它的错误信息更有用(以我的经验)。 – Wevah 2011-04-18 22:47:52

回答

0

您正在定义@protocol PHCluesListViewControllerDelegate两次。另外,如果需要实施mapUp,则可能需要添加@required关键字。

+3

他没有定义两次协议 - '@protocol PHCluesListViewControllerDelegate;'是一个前向声明。另外,'@ required'是默认的,所以这个方法已经是必需的了。 – 2011-04-18 22:45:49

相关问题