2011-09-16 2 views
0

내 Xcode .m 소스 파일은 많은 루틴으로 인해 길어지고 그 중 일부는 다소 길다. 추가 .m 파일을 추가 한 다음 주 .m 파일에서 루틴을 호출하는 방법을 찾고 있습니다. 나는 소스 파일을 추가하는 역학을 이해, 난 정말 내가 현재 오전 이외의 다른 파일 소스에서 루틴을 호출하는 방법을 알고 싶어길거나 여분의 루틴을위한 공간을위한 .m 소스 코드 파일 추가

예 :.

mySource.h이

-(void) myRoutine01; 

-(void) myRoutine02; ... 

-(void) myRoutine99; 
을 포함

내부 mySource.m 내가 thusly 히 루틴을 호출

[self myRoutine01]; 

[self myRoutine02]; 

[self myRoutine03]; 

내가 만들자 호출로 주로 로직 물건을하고 있도록 길이 관리 mySource.m을 유지하고 싶습니다 실제로 다른 소스 파일에 저장됩니다. 일부 루틴은 매우 길어질 수 있으며, 자신의 .m 파일을 저장하면 가장 편리합니다.

다른 소스 파일에서 루틴을 호출하려면 어떻게해야합니까? 나는 "자기"를 무언가로 바꾸 었는가?

+0

"루틴"을 여러 '.m'파일로 분할하고 같은 클래스의 구성원으로 사용 하시겠습니까, 아니면 현재 클래스에서 참조 할 수 있도록 새 클래스를 추가 할 것인지 묻는 중입니까? 후자가 일반적으로 더 나은 선택이지만 실제로 문제를 어느 방법 으로든 해결할 수 있습니다. – adpalumbo

+0

외부 루틴은 같은 클래스의 멤버입니다. 하나의 .m 파일 안에 편안하게 들어갈 수 있도록 많은 데이터 분석 루틴을 만들고 있습니다. – Leigh

답변

2

"루틴"이라고하는 것은 실제로 메서드입니다.

여러 파일에있는 Objective-C 범주를 사용하여 메서드를 구성 할 수 있습니다. 범주는 기존 Objective-C 클래스에 메서드를 추가하는 방법입니다. 이에 대한 자세한 내용은 documentation을 읽어보십시오.

이렇게하면 특정 방법을 특정 범주로 그룹화하여 소스 파일을 구성하고 작게 유지할 수 있습니다. 예컨대

:

에서 MyClass.h

@interface MyClass: NSObject 
{} 

- (void)someMethod; 

@end 

MyClass에 + Misc.h (카테고리)

#import "MyClass.h" 

@interface MyClass(Misc) 

- (void)someOtherMethod; 

@end 

MyClass.m

#import "MyClass.h" 
#import "MyClass+Misc.h" 

@implementation MyClass 

- (void)someMethod 
{} 

@end 

MyClass에 + 잡화한다. m

#import "MyClass+Misc.h" 

@implementation MyClass(Misc) 

- (void)someOtherMethod 
{} 

@end 
+0

내 오래된 학교 C 배경이 보이고 있습니다! 외부 메소드에 다른 헤더 파일을 추가하는 것만 큼 문제가되지 않습니까? – Leigh

+0

;) 문제 없습니다 ... 카테고리마다 헤더 파일과 각 파일에 대한 구현 파일을 추가해야합니다. – Macmade

+0

저는 Catagories를 지금 공부하고 있습니다. 나는 지금 당장 더 좋은 질문을 할 정도로 똑똑하지 않습니다. 반드시 읽고 실험해야합니다. – Leigh