非常基本的XCode Objective-C问题

时间:2009-07-10 01:45:40

标签: objective-c xcode

我在Objective-C中制作了一个简单的程序。它有一个类有很多方法。我只想将这些方法放在另一个文件中......所以我可以移动以下内容

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

到另一个文件并将上面的内容替换为

#include "myNewFile.something"

我很好把#include(或其他)语句放在原始文件中。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您需要将方法拆分为不同的“类别”,每个类别都有自己的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的实例,它将包含category1和category2中的所有方法。只需使用

TestClass* test = [[TestClass alloc] init];
[test TestMethod1];
[test TestMethod2];

答案 1 :(得分:0)

您需要创建一个头文件并将其包含在适当的位置。

如果将所有代码移动到“newFile.m”,请创建“newFile.h”并将所有方法签名放在头文件中。然后在旧文件中,执行“#include oldFile.h”。