Ben*_*son 26 iphone delegates protocols objective-c ios
我有两个对象,都是视图控制器.第一个(我称之为viewController1)声明了一个协议.第二个(不出所料我将命名viewController2)符合这个协议.
XCode给我一个构建错误:'找不到viewController1的协议声明'
我已经看到关于这个主题的各种问题,我确信这是一个循环错误,但我只是在我的情况下看不到它...
代码如下..
viewController1.h
@protocol viewController1Delegate;
#import "viewController2.h"
@interface viewController1 {
}
@end
@protocol viewController1Delegate <NSObject>
// Some methods
@end
Run Code Online (Sandbox Code Playgroud)
viewController2.h
#import "viewController1.h"
@interface viewController2 <viewController1Delegate> {
}
@end
Run Code Online (Sandbox Code Playgroud)
最初,我在viewController1中的导入行高于协议声明的导入行.这阻碍了项目的建设.在SO上搜索之后,我意识到了这个问题,然后切换了两条线.我现在收到警告(而不是错误).该项目建设良好,实际上运行完美.但我仍然认为发出警告肯定有问题.
现在,据我所知,当编译器到达viewController1.h时,它首先看到的是协议的声明.然后它导入viewController.h文件并看到它实现了这个协议.
如果它反过来编译它们,它将首先查看viewController2.h,它首先要做的是导入viewController1.h,其第一行是协议声明.
我错过了什么吗?
Cos*_*que 68
从以下行中删除此行viewController1.h
:
#import "viewController2.h"
Run Code Online (Sandbox Code Playgroud)
问题是viewController2
在协议声明之前对接口进行了预处理.
该文件的一般结构应如下所示:
@protocol viewController1Delegate;
@class viewController2;
@interface viewController1
@end
@protocol viewController1Delegate <NSObject>
@end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35986 次 |
最近记录: |