2010-04-28 100 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 
相关问题