我已经在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 :(得分:0)
您要定义@protocol PHCluesListViewControllerDelegate两次。此外,如果需要实现mapUp,您可能需要添加@required关键字。