2011-09-11 3 views
22

저는 Apple의 샘플 코드에 대해 아주 기본적인 질문을 가지고 있습니다. 하는 .m 파일에서 클래스 선언은 다음과 같이 :@interface 및 @implementation 지시어의 괄호 안의 텍스트는 무엇을 의미합니까?

@interface MyMovieViewController (OverlayView) 
[...] 
@end 

@interface MyMovieViewController (ViewController) 
[...] 
@end 

@implementation MyMovieViewController(ViewController) 
[...] 
@end 

@implementation MyMovieViewController (OverlayView) 
[...] 
@end 

@implementation MyMovieViewController 
[...] 
@end 

전체 코드 here합니다.

괄호 안의 내용 ("OverlayView"및 "ViewController")은 코드를 해독하여 읽기 쉽도록하지만 실제로 코드의 실행에는 영향을 미치지 않습니다. 그러나 나는 중요한 것을 오해하고 싶지 않기 때문에, 나는 내가 확신 하는지를 점검 할 것이라고 생각했다.

내 이해가 맞습니까? 감사!

답변

3

이들은 '카테고리'입니다.

이러한 클래스를 사용하면 클래스의 모든 개체에 적용 할 메서드를 추가하여 모든 objective-C 클래스를 확장 할 수 있습니다. 여기

더 자세한 기사 : 사람들은 Categories라고하며 클래스에 추가 기능을 추가 할 수 있습니다 http://macdevelopertips.com/objective-c/objective-c-categories.html

20

.

카테고리를 사용하면 소스가없는 기존 클래스에 메소드를 추가 할 수 있습니다. 카테고리는 서브 클래 싱없이 기존 클래스의 기능을 확장 할 수있는 강력한 기능입니다. 범주를 사용하여 여러 파일에 고유 클래스의 구현을 배포 할 수도 있습니다. 클래스 확장은 비슷하지만 기본 클래스 인 @interface 블록 이외의 위치에있는 클래스에 대해 추가로 필요한 API를 선언 할 수 있습니다.

From the Apple docs on Categories and Extensions.

[기존 클래스 정의]에
+0

애플 문서 (https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html) – LopSae

관련 문제