2012-05-10 63 views
0

声明我创建了一个协议找不到协议声明时协议在它自己的.h文件中

#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 

// Defines the protocol that must be implemented to be a delegate for UCMapviewController 
@protocol UCMapviewDelegate <NSObject> 
@required 
- (void)pushMapviewRight; 

@end 

当我去到新的文件 - >协议,有一个提示,询问目标。我检查我的项目。但是当我单击我的项目中的protocol.h文件并查看文件检查器时,在“目标成员”中,我的项目未选中,我无法检查它。

当我把协议在我viewControllers之一(例如)的头文件我没有得到这个错误。我必须在其他地方导入协议吗?

什么是错的?非常感谢帮助! THX

+0

http://stackoverflow.com/questions/7661334/why-are-the-targets-memberships-checkboxes-disabled-for-all-files – jajo87

回答

2

头文件不进入一个目标,除非你正在构建一个框架,并希望将头文件复制到这个框架中的头文件夹。构建应用程序时,只有源文件属于目标。

你会发现,如果你在你的项目中选择你的另一头之一,它也不会成为目标。只有相应的源文件。这并不重要。如果标题在你的项目中,你可以#import它就好了。

+0

但是,如果我导入协议(如果是的话,到符合的类对它??),是不是打败了它的目的?我的意思是,我的“AppDelegate”不会导入UIApplicationDelegate.h?! – MJB

+1

@MJB:'UIApplicationDelegate.h'肯定是由你的'AppDelegate.m'一流的进口,借助于导入''的。 –

+0

好像我完全误解了,谢谢你们!所以我必须在每个我想“使用”它的文件中导入protocol.h,无论是实现还是委托属性? – MJB