2016-08-15 8 views
0

Xcodeは、このObjective-Cテストケースのテンプレートコードを生成します。なぜヘッダファイルを生成せず、@interfaceを実装ファイルに入れますか?@interfaceと@implementationは同じファイルにあります(ヘッダーファイル、Xcodeユニットテストテンプレートなし)

#import <XCTest/XCTest.h> 

@interface BYObjCTest : XCTestCase 

@end 

@implementation BYObjCTest 

// test methods 

@end 

この構造体はどのように呼び出されますか?これはプライベートクラスですか?テストケースは、一般に、ユーザコードの外部から呼び出される必要はありません。これが、これがこのように生成される理由ですか?

答えて

3

.mファイルにClassName:Superclassブロック(クラス宣言ブロックと呼ばれています)というインターフェースを持つことは大丈夫です。

ヘッダー(.h)ファイルでクラスを宣言することは、一般的です(他のクラスで使用されるクラスである必要がありますが、クラスが外部で使用されることを意図しないため) .mファイルの場合、同じ.mまたは.mmファイルで宣言と実装を行うのは問題ありません。

たとえば、TestClassのテストでは、他の場所では使用されないため、ヘッダーは必要ありません。

他の言語では、これらのプライベートクラスを呼び出します。 objCのプライベートクラスで.hファイルがありません:)