@interface和@implementation在同一个文件中(没有头文件,Xcode单元测试模板)

时间:2016-08-15 15:22:00

标签: objective-c xcode class unit-testing

Xcode为新的Objective-C测试用例生成此模板代码。为什么它不生成头文件并将@interface放在实现文件中?

#import <XCTest/XCTest.h>

@interface BYObjCTest : XCTestCase

@end

@implementation BYObjCTest

// test methods

@end

这个结构如何调用?这是私人班级吗?通常不需要从用户代码外部调用测试用例,这是以这种方式生成的原因吗?

1 个答案:

答案 0 :(得分:3)

在.m文件中使用接口ClassName:Superclass块(称为类声明块)是可以的。

在Header(.h)文件中声明一个类更常见,因为它需要公开的类(将在其他类中使用的类),但如果您的类不打算使用在.m文件的外部,可以将声明和实现放在同一个.m或.mm文件中。

例如,在TestClass的测试中,它们不会在其他任何地方使用,因此不需要标题。

其他语言会称这些私人课程。 objC中的私有类没有.h文件:)