我已经声明了一个协议,一切似乎工作正常,甚至Xcode自动完成协议的名称,如果我尝试采用它,但当我编译项目时,它一直告诉我“无法找到协议声明”。这很奇怪,因为我在同一个班级采用的第二个协议,我没有与前者有任何错误!这是代码:
这里我宣布协议:
// LoginViewController.h
#import <UIKit/UIKit.h>
@protocol LoginEndDelegate <NSObject>
-(void)doneLogin;
@end
在这里我尝试采用它:
#import "LoginViewController.h"
#import "WebServiceAPI.h"
@protocol SubstitutableDetailViewController
- (void)showRootPopoverButtonItem:(UIBarButtonItem *)barButtonItem;
- (void)invalidateRootPopoverButtonItem:(UIBarButtonItem *)barButtonItem;
@end
@interface RootViewController : UITableViewController <UISplitViewControllerDelegate,WebServiceAPIDelegate,LoginEndDelegate> {
请帮帮我们..谢谢!
答案 0 :(得分:0)
尝试预处理导入第二个代码段的源文件,并确保在接口声明之前出现LoginEndDate声明。 (产品菜单在XCode 4上的“生成输出”下有一个“生成预处理文件”项。)
您很可能拥有导入依赖关系周期。 LoginViewController.h
可能会导入导致在协议声明之前导入接口声明的内容。