2013-07-31 2 views
-3

#import 및 @class를 사용할 수 없습니다.objective-C#import @class

단순한 고전적인 예인 피고용인의 경우를 명확하게하려고합시다.

클래스 직원, 클래스 관리자 및 클래스 부서가 있습니다.

직원은 매니저의 슈퍼 클래스이며, 또한 (그래서 난 Employee.h에 또는 employee.m에? 부서를 가져와야합니다 그리고 난 # import를 사용하거나 @class해야하는 위치?)

부서가 들어있는 개체 부서 를 포함 직원의 배열은 그렇게 내가 유사한 게시물을 읽으려고 클래스 Employee.h에 (내가 가져 오기 또는 클래스? 어디를 사용해야합니까?)

i know theres a better way to solve this problem, using databases or so 
but that's not my point, i want to understand when and where to use 
#import and where and when use @class 

을 가져와야한다, 그래서하지만 난 그 작동 방식을 이해하지 않았다. ..

답변

3

@class을 사용하면 해당 클래스를 사용한다는 것을 컴파일러에 알릴 수 있으며 어떤 종류의 선언에서이 클래스를 참조 할 때만 사용할 수 있습니다. 헤더 파일을 가져 오지 않으므로 조금 더 빨리 컴파일됩니다. 원형 흠도를 피하는 것도 유용합니다.

#import을 사용하면 실제로 컴파일하는 동안 헤더 파일을 가져오고 문제의 클래스의 동작에 의존 할 때 필요합니다. 컴파일러가 속성, 메서드 등을 안전하게 사용할 수있는 방법을 알고있는 방법입니다.

+0

여기에 내 의구심이 ... 내가 클래스를 가져 오려면 실제로 그 클래스의 객체로 작업해야하거나 그 중 하나를 사용하거나 변수 값을 가져야합니다. @class를 사용할 때의 실질적인 예는 무엇입니까? 다른 키워드를 사용할 때 의문의 여지가 있습니다. 어떤 사람들은 헤더 파일에 클래스를 들여와 .m 파일에서 가져 오기라고 말합니다. 차이점은 무엇입니까? – mystudioos

+1

헤더 파일에서 @class를 항상 사용하는데, 그 클래스의 유형으로 ivar 또는 속성 (또는 무엇이든)을 선언하는 것뿐입니다. 이 경우 헤더를 가져올 필요가 없습니다. 그 구현 파일 그러나, 그 클래스의 인스턴스를 사용하려면 헤더를 가져와야합니다. –

관련 문제