Методы суперкласса XCTestCase невидимы для подкласса - PullRequest
0 голосов
/ 02 апреля 2020

Я создал следующий суперкласс 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

Но подкласс не будет компилироваться. Сообщение об ошибке гласит:

Нет видимого @interface для 'FilenamePatternTest1' объявляет селектор 'helloMessage'

1 Ответ

0 голосов
/ 02 апреля 2020

Objective- C не может видеть объявления, сделанные в файле .m. Вам нужно будет объявить методы, которые вы хотите вызвать, в файле .h вашего суперкласса.

...