[App 개발] .h파일에 선언하는 method에 대해 질문입니다.
본문
예를 들자면 AppController클레스를 만들었을때 .h파일과 .m파일이 만들어집니다.
그런데 책의 예제 코드를 보면 어떤 메소드는 .h에 선언을 해 놓고 또 어떤 메소드는 선언없이 그냥 .m파일에 구현합니다.
예를 들자면 쳅터24에서 .h에 선언한 메소드들은
- (IBAction)stopGo:(id)sender;
- (void)incrementCount;
- (void)resetCount;
- (void)showAnotherLetter;
이지만
.m에서 작성한 메소드들은
- (id)init{}
- (void)awakerFromNib{}
- (void)resetCount{}
- (void)incrementCount{}
- (void)showAnotherLetter{}
- (IBAction)stopGo:(id)sender{}
- (void)checkThem:(NSTimer *)aTimer{}
입니다.
- (id)init{}이나 - (void)awakerFromNib{} 들은 기본 함수같은 개념으로
굳이 .h에 선언 하지 않아도 파일안에서 구현되면 알아서 실행하고 없으면 기본값으로 동작 하는것으로 알고 있는데
- (void)checkThem:(NSTimer *)aTimer{}같은 경우 .h에 선언없이 그냥 .m에서 구현한 이유를 알고 싶습니다.
최신글이 없습니다.
최신글이 없습니다.
댓글목록 3
hongjuny님의 댓글
init 이나 awakerFromNib 같은 메쏘드도 어딘가에 다 선언이 되어 있습니다. 대략 superclass 에 선언되어 있겠지요.
checkThem 이라는 함수는 바로 위에 보시면 @selector 로 정의되어 있을 것입니다.
nearfri님의 댓글
C++ 과는 달리 Obj-C는 상속된 메소드에 대해 재선언할 필요가 없습니다.
기본적으로 C++은 컴파일시 바인딩되는 구조이기 때문에 상속받은데서 오버라이딩하려면 재선언해야 하는거고, Obj-C는 기본이 런타임시에 바인딩 되는 구조이기 때문에 그럴 필요가 없습니다.
이상 이해되지 않더라도 별로 상관없는 얘기였습니다.
나도맥님의 댓글
checkThem은 셀렉터이기 때문에 .h에 선언 할 필요가 없다는건가요?
그럼 checkThem이 stopGo(checkThem을 셀렉터로 호출하는)보다 먼저 나온다고 해도 상관이 없나요?