2012-06-16 2 views
0

안녕하세요 저는 객체 -c에 익숙하지 않으며 어리석은 질문 일 수 있습니다. 나는 m 파일에 논리를 만들기 전에 헤더 파일 (.h 파일)에 메서드의 이름을 지정해야한다는 것을 배웠다. 그러나 h 파일이 아닌 m 파일에서만 메소드를 지정하는 몇 가지 예제를 발견했습니다. 그리고 괜찮습니다. 나는 지금 무엇을 따라야하는지 약간 혼란 스럽다. 차이점을 설명해주세요.h 파일에서 메소드 지정하기

답변

0

Xcode의 최신 버전에는 정의 된 동일한 .m 파일에서 메서드를 사용하려는 경우 헤더 파일의 선언을 건너 뛸 수있는 컴파일러가 포함되어 있습니다.

아마 당신이 본 것입니다.

동일한 최신 버전의 Xcode를 사용하면 .m 파일에 ivars를 선언 할 수 있습니다.이 파일은 구현 파일에서 더 간단한 헤더 파일과 더 높은 지역성을 제공합니다.

+0

이것은 컴파일러의 새로운 기능이 아닙니다. 머리글에 메서드를 선언 할 필요가 없습니다. 클래스를 구현하는 번역 단위 (.m 파일, 기본적으로)로 메소드를 인식해야하는 경우에만 필요합니다. –

+0

@KenThomases 당신은 당연한 일이지만, 이전 버전 (gcc)에서는 참조하기 전에 메서드를 정의해야했지만 이제는 파일에서 더 아래쪽에 정의 된 메서드를 참조 할 수 있다고 확신합니다. . – Monolo

+0

호출하기 전에 메서드를 선언하거나 정의해야합니다. 예를 들어, clang의 최신 버전에서는 더 이상 필요하지 않습니다. –

1

프로젝트에서 공개적으로 사용할 수있는 모든 방법은 .h- 파일로 이동합니다. 메서드를 private로 지정하려면 h.-file에 추가하지 말고 .m- 파일에 정의하십시오.

관련 문제