2010-04-28 6 views
0

TapDetectingImageView 파일 내에 새 메서드를 만들려고하는데 .h 파일에 선언되어 있어도 메서드를 찾을 수 없다는 경고가 나타납니다.touchesBegan에 메서드를 삽입 할 때 오류 메시지가 발생합니다.

빌드 할 때 특정 3 가지 경고가 .m 파일의 @end 행을 가리키며 "클래스 'TapDetectingImageView'의 구현이 불완전합니다. '-functionA :'메서드 정의가 없습니다. '; " '-functionB에 대한 메소드 정의 :'찾을 수 없습니다.

무엇이 누락 되었습니까? TapDetectingImageView와 같은 프로토콜 파일에서이 작업을 수행 할 수 없습니까? 내 .H 파일에서

은 다음과 같습니다 내하는 .m 파일에서

@interface TapDetectingImageView : UIImageView <AVAudioPlayerDelegate> { 

id <TapDetectingImageViewDelegate> delegate; 

} 

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

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

@end 

은 다음과 같습니다

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

// do stuff in this function with aVariable 

} 

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

// do stuff in this function with aVariable 

} 
+0

가 적절한 헤더 파일을 가져 않았다

내가 바로 파일 가져 오기 후 implementation 전에하는 .m 파일에이처럼 그들을 선언? – shosti

+0

네. .m 파일은 메서드가 정의 된 .h 파일을 가져옵니다. 이상한 일이 있습니다. 다른 .m 및 .h 세트에서이 작동하지만 TapDetectingImageView 예제 작동하지 않습니다. – iwasrobbed

답변

0

나는 ... 그것을 알아 낸 나는 내에서 private 메소드로 선언했다. m 파일을 작동하도록 설정 한 다음 [self methodName:variableIn] ...으로 호출하면 .h 파일에서 선언 한 경우 작동하지 않는 이유가 무엇이든간에.

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