왜이 오류가 발생하지 않고 컴파일 되었습니까?중복 메서드 이름 - Objective-c
@interface ObjectTest : NSObject {
}
-(void)iAmADoubleMethod;
-(void)iAmADoubleMethod;
@end
@implementation ObjectTest
-(void)iAmADoubleMethod {
NSLog(@"IAmADoubleMethod");
}
@end
내가 작업하고있는 프로젝트에서이 문제가 발생했습니다. 저는 C++ 배경에서 왔습니다. 그래서 적어도 이것에 대한 경고를 얻을 것이라고 생각했습니다. 나는 그것이 왜 준수 하는지를 알고 싶을뿐 아니라이 코드가 어떤 문제를 일으킬 수 있는지 알고 싶습니까?
감사합니다.
올바른지 확신 할 수 없기 때문에이 내용을 주석으로 표시하겠습니다. C 표준은 단 하나의 정의가있는 한 여러 개의 선언을 가질 수 있기 때문에이 방법이 효과적이라고 생각합니다. 예를 들어 많은 파일에서 int x를 선언 할 수 있지만 한 곳에서 변수의 공간 만 정의 할 수 있습니다. –