2010-04-28 99 views
0

我想在我的TapDetectingImageView文件中創建一個新方法,它給我一個警告,即使我已經在.h文件中聲明它,但找不到該方法。嘗試將方法插入到touchesBegan時出現錯誤消息

特定的三個警告都指向.m文件中的@end行,當我構建它時,他們說:「類'TapDetectingImageView'的不完整實現;''functionA:'not found'的方法定義; 「方法定義爲'-functionB:'找不到'

我錯過了什麼?我不允許在TapDetectingImageView等協議文件中執行此操作嗎?

在我的.h文件是:

@interface TapDetectingImageView : UIImageView <AVAudioPlayerDelegate> { 

id <TapDetectingImageViewDelegate> delegate; 

} 

@property (nonatomic, assign) id <TapDetectingImageViewDelegate> delegate; 

-(void) functionA:(NSString*)aVariable; 
-(void) functionB:(NSString*)aVariable; 

@end 

在我的.m文件是:

-(void)functionA:(NSString*)aVariable { 

// do stuff in this function with aVariable 

} 

-(void)functionB:(NSString*)aVariable { 

// do stuff in this function with aVariable 

} 
+0

你導入相應的頭文件? – shosti 2010-04-28 03:17:15

+0

是的,.m文件會導入定義方法的.h文件......這是奇怪的事情。在任何其他.m和.h設置,這工作正常,但它不在TapDetectingImageView示例 – iwasrobbed 2010-04-28 03:29:44

回答

0

我想通了......我不得不把他們定義爲內部的私有方法。 m文件,以便他們工作,然後將其稱爲[self methodName:variableIn] ...無論出於何種原因,如果我在.h文件中聲明它們,它們將不起作用。

我宣佈他們這樣在導入文件後implementation前右.m文件:

@interface TapDetectingImageView() 
// Private Methods 
-(void)functionA:(NSString *)aVariable; 
-(void)functionB:(NSString *)aVariable; 
@end 
相關問題