2012-02-29 3 views
2

이 둘은 동일합니까? 왜 다른 것을 사용합니까?메서드 구현 끝의 세미콜론

-(void)someMethod; { stuff }

-(void)someMethod { stuff }

+0

처음 두 사람은 대답했습니다 : 실제로 유효한 구문이고 컴파일러와 런타임은 불평하지 않습니다. 나는 프로그래밍에 관한 책을 읽었으며, 모든 예제는 이전에 보지 못했던 세미콜론으로 구현한다. 그러므로 질문. 나는 그것이 이상하다는 것을 안다. – johnbakers

+0

나는 고쳐졌다. 확실히 틀린 것처럼 보이지만 작동한다면 제대로 작동합니다. 나는 그것이 올바른 구문인지 아닌지에 대해 객관적으로는 충분하지 않습니다. 널리 사용되는 언어가 아니기 때문에 컴파일러가 실제로 받아 들일 수있는 언어가 많습니다. –

+1

그것은 확실히 작동하지만 이것은 역사적인 인공물이라고 생각합니다. 그것은 애플에 의해 권장되지 않습니다. – JeremyP

답변

1

정답은 Josh Caswell의 답변입니다.

구문 적으로 유효합니다. 넥스트 시대의 이상한 유물.

0

-(void)someMethod; 메소드 선언하고 -(void)someMethod { stuff }가 구현된다.

메소드 선언은 클래스 외부에 표시하고 구현을 구현 파일 (예 : MyClass.m)로 작성하려면 헤더 파일 (예 : MyClass.h)로 작성해야합니다.

그리고 나는 -(void)someMethod; { stuff }이 가능하지 않다고 생각합니다.

+0

의견보기 내 질문에 추가 – johnbakers

+0

그것은 구문 적으로 유효합니다; 넥스트 시대의 이상한 유물. –

1

처음에는 잘못 보입니다.

-(void)someMethod; 

그리고하는 .m 파일에

당신이 할 것이다 : 일반적으로 당신의 .H 파일에 당신이 뭔가를 할 것이다

-(void)someMethod { stuff } 

은 아마도 첫 번째는 일부 잘라 내기 및 붙여 넣기의 결과로 약 왔어요 컴파일러는 그것을 받아 들였다.

+0

의견보기 i 내 질문에 추가했습니다. – johnbakers