2009-07-10 14 views
2

私はObjective-Cで簡単なプログラムを作っています。それは多くのメソッドを持つ1つのクラスを持っています。私はちょうど私が元気ですので、私は別のファイルに次の非常に基本的なXCode Objective-Cに関する質問

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

を移動し、

#include "myNewFile.something" 

のようなもの/ Wの上方に取って代わる可能性が...別のファイルにメソッドを入れたいのですが#include(または何でも)文を元のファイルのすぐ上に置いてください。

どうすればいいですか?

+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 

その後、あなたのクラスを使用しているどんなファイルで、あなたは今、あなたが作成することができます

​​

を使用しますTestClassクラスのインスタンスであり、category1とcategory2の両方からすべてのメソッドを持ちます。単純に使用する

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

ヘッダーファイルを作成し、必要に応じて組み込む必要があります。

すべてのコードを "newFile.m"に移動する場合は、 "newFile.h"を作成し、すべてのメソッドシグネチャをヘッダファイルに入れます。その後、古いファイルで、 "#include oldFile.h"を実行します。

関連する問題