XCTestCase 超类方法对子类不可见

XCTestCase superclass methods not visible to subclass

我创建了以下 XCTestCase 超类:

//  FileNameTest.h

#import <XCTest/XCTest.h>

NS_ASSUME_NONNULL_BEGIN

@interface FileNameTest : XCTestCase

@end

NS_ASSUME_NONNULL_END

//  FileNameTest.m

#import "FileNameTest.h"

@implementation FileNameTest
- (void)setUp {
    [super setUp];
}

- (void)tearDown {
    [super tearDown];
}

- (void)helloMessage{
  NSLog(@"Hello");
}

@end

以及调用超类方法的子类:

//  FilenamePatternTest1.m

#import "FileNameTest.h"

@interface FilenamePatternTest1 : FileNameTest

@end

@implementation FilenamePatternTest1

- (void)testExample {
  [self helloMessage];
}

@end

但是子类不会编译。错误消息如下:

No visible @interface for 'FilenamePatternTest1' declares the selector 'helloMessage'

Objective-C 看不到 .m 文件中的声明。您需要在超类的 .h 文件中声明要调用的方法。