Добавление файлов исходного кода .m для комнаты для длинных или дополнительных процедур - PullRequest
0 голосов
/ 17 сентября 2011

Мои исходные файлы Xcode .m становятся длинными из-за многочисленных подпрограмм, некоторые из которых довольно длинные. Я ищу способ добавить дополнительные файлы .m, а затем вызвать подпрограммы в них из моего основного файла .m. Я понимаю механизм добавления исходных файлов, я действительно хочу знать, как вызывать подпрограммы в исходных файлах, отличных от того, в котором я сейчас нахожусь.

Пример:

mySource.h содержит

-(void) myRoutine01;

-(void) myRoutine02; ...

-(void) myRoutine99;

Внутри mySource.m я вызываю процедуру так:

[self myRoutine01];

[self myRoutine02];

[self myRoutine03];

Я бы хотел, чтобы mySource.m был управляемым по длине, так что я в основном выполняю логику с вызовами подпрограмм, которые фактически размещены в других исходных файлах. Некоторые подпрограммы могут быть очень длинными, и размещение их в собственных файлах .m будет наиболее удобным.

Как мне вызвать подпрограммы в другом исходном файле? Я просто заменяю "себя" чем-то?

1 Ответ

2 голосов
/ 17 сентября 2011

То, что вы называете «процедурами», на самом деле являются методами.

Вы можете организовать свои методы, используя категории Objective-C, размещенные в нескольких файлах.Категория - это способ добавления методов в существующие классы Objective-C.Прочтите документацию , чтобы узнать больше об этом.

Таким образом, вы можете упорядочить свои исходные файлы и сохранять их небольшими, группируя определенные методы в определенную категорию.

Например:

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 + Misc.m

#import "MyClass+Misc.h"

@implementation MyClass( Misc )

- ( void )someOtherMethod
{}

@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...