2012-05-10 67 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