이것은 꽤 까다로운 질문입니다. 저는 코코아 샘플 코드를보고 있는데, .m 파일과 헤더에 @interface 블록이 있습니다. 예를 들어 AppDelegate 클래스 헤더에서 UIWindow 및 UI 탐색은 인스턴스 변수로 정의되지만 @property 선언은 실제로 구현 파일에서 만들어집니다. 기능적 이유가 있습니까, 문체 선택입니까, 아니면 ...?내 @implementation에 @interface가 있습니다 - 왜 그런가요?
4
A
답변
7
일부 사용자 지정 대리자가 다른 클래스와 내부적으로 작업하려면 헤더에 인터페이스를 알릴 필요가 없습니다.
단지 불필요한 잡음을 추가하고 공개 사용을 위해 설계되지 않았거나 클래스의 컨텍스트 외부에서 유용하지 않은 인터페이스를 사용할 수 있도록합니다.
클래스의 메서드 및 속성에도 동일하게 적용됩니다. 인스턴스 변수에 대해 선언 된 속성을 사용하려고하지만 공용으로 액세스 할 수 없도록하려는 경우에는 헤더에서 선언 할 필요가 없습니다. 클래스 확장을 사용하면이를 수행 할 수 있습니다 (예 : "How to make a private property?".
관련 문제
- 1. 내 JavaScript에서 JSON이 전체적으로 수정되고 있습니다 ... 왜 그런가요?
- 2. org.springframework.orm.hibernate3.HibernateSystemException : ... 왜 그런가요?
- 3. RJS는 사악하고 왜 그런가요?
- 4. 비디오에서만 사운드가 재생됩니다. 왜 그런가요?
- 5. 애널리틱스에서 이벤트를 추적하지 않습니다. 왜 그런가요?
- 6. @implementation에 선언 된 변수
- 7. Rails I18n.l은 모든 시간대에 대해 yaml 파일을 원하지만 ... 왜 그런가요?
- 8. [[UIApplication sharedApplication] delegate]이 (가) 왜 그런가요? 무응답 객체를 반환하십시오.
- 9. Symfony 1.3 및 양식 : '저장'을 클릭하면 비밀번호가 변경됩니다. 왜 그런가요?
- 10. 주석을 정의하는 데 @interface가 사용되는 이유는 무엇입니까?
- 11. 이클립스가 내 EAR을 올바로 구축하지 못합니다. 때로는 전쟁을 잊어 버리고 언제나 내 라이브러리 항아리를 벗어납니다. 왜 그런가요?
- 12. 내 Java 코드에 명백한 오류가 있습니다. 왜 컴파일되고 실행됩니까?
- 13. 왜 내 XML이 깨지나요?
- 14. 왜 내 수업이 없습니까?
- 15. 왜 내 기능이 멈추는가
- 16. 왜 내 JQuery와는
- 17. 왜 내 TTTableViewController이
- 18. 왜 내 프로그램이 실패하나요?
- 19. 다운로드 속도 연결이 다양합니다. 처음 사용하는 데 시간이 오래 걸립니다 - 왜 그런가요?
- 20. 내 내부 조인에 문제가 있습니다.
- 21. 내 routes.rb 파일에 수수께끼가 있습니다
- 22. 수동으로 예약 된 작업은 시간에 따라 이동되지만 그렇게해서는 안됩니다. 왜 그런가요?
- 23. 왜 내 UIToolBar 내 UITableView 스크롤합니까?
- 24. 내 web.xml에 오류가 있습니다.
- 25. qx.ui.table.Table에 내 브라우저가 있습니다.
- 26. 내 디렉토리에 UnauthorizedAccessException이 있습니다.
- 27. 내 NSPredicate에 문제가 있습니다.
- 28. SQL 2005 Framework \ Design & Implementation에 대한 일반적인 제안
- 29. 내 UITableView에 행이 중복되어 있습니다.
- 30. 왜 내 scrollView가 내 좌표로 시작하지 않습니까?
아, 감사합니다. –