Очень простой вопрос XCode Objective-C - PullRequest
2 голосов
/ 10 июля 2009

Я делаю простую программу в Objective-C. У него один класс с множеством методов. Я просто хотел бы поместить методы в другой файл ... чтобы я мог переместить следующее

- (void) myfunc1 {...}
- (void) myfunc2 {...}
// more functions

в другой файл и замените вышеуказанное w / что-то вроде

#include "myNewFile.something"

Я в порядке, если поместить оператор #include (или любой другой) прямо в исходный файл.

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 10 июля 2009

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

TestClass.h

#import <Cocoa/Cocoa.h>
@interface TestClass : NSObject {
}
@end

TestClass.m

#import "TestClass.h"
@implementation TestClass
@end

TestClass + Category1.h

#import <Cocoa/Cocoa.h>
#import "TestClass.h"
@interface TestClass(Category1) 
-(void)TestMethod1;
@end

TestClass + Category1.m

#import "TestClass+Category1.h"
@implementation TestClass(Category1)
-(void)TestMethod1 {
NSLog(@"This is the output from TestMethod1");
}
@end

TestClass + Category2.h

#import <Cocoa/Cocoa.h>
#import "TestClass.h"
@interface TestClass(Category2) 
-(void)TestMethod2;
@end

TestClass + Category2.m

#import "TestClass+Category2.h"
@implementation TestClass(Category2)
-(void)TestMethod2 {
NSLog(@"This is the output from TestMethod2");
}
@end

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

#import "TestClass.h"
#import "TestClass+Category1.h"
#import "TestClass+Category2.h"

Теперь вы можете создать экземпляр класса TestClass, и он будет иметь все методы как категории1, так и категории2. Просто используйте

TestClass* test = [[TestClass alloc] init];
[test TestMethod1];
[test TestMethod2];
0 голосов
/ 10 июля 2009

Вам необходимо создать заголовочный файл и включить его соответствующим образом.

Если вы переместите весь свой код в «newFile.m», создайте «newFile.h» и поместите все сигнатуры вашего метода в заголовочный файл. Затем в вашем старом файле выполните "#include oldFile.h".

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