я не могу вызвать метод в быстром файле - PullRequest
0 голосов
/ 11 июля 2019

Я хочу вызвать метод из цели c для быстрого файла.но он показывает мне значение DCSideMenuViewController не имеет члена viewControllerFromMenuItem

У меня есть целевой файл импорта c в bridging-header.h, но работает

  1. Этофайл swift

    let obj:DCSideMenuViewController = DCSideMenuViewController()
     DCSideMenuViewController().viewControllerFromMenuItem
    

2. Это объективный файл C

- (DCBaseViewController*)viewControllerFromMenuItem: (DCMenuSection)menuItemandControllerId:(NSString*)controllerId {
    NSString* storyboardName = [selfstoryboardNameForMenuItem:menuItem];
    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
    if ([controllerId isEqualToString:@"DCFloorPlanController"]) {
        storyboard = [UIStoryboard storyboardWithName:@"SMain" bundle:nil];
    }

Значение типа DCSideMenuViewController не имеет члена viewControllerFromMenuItem

1 Ответ

0 голосов
/ 11 июля 2019

Ваш метод должен быть переведен в следующий метод Swift:

func fromMenuItem(_ menuItem: DCMenuSection, andControllerId controllerId: String) -> DCBaseViewController

Вы всегда можете заглянуть в сгенерированный интерфейс Swift, чтобы найти доступные методы.

В следующем предложении вы можете найти, какAPI-интерфейс Objective C переведен на Swift: https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md

Ваш случай можно найти на шаге Сокращения -> 4. Удалите совпадение для типа включения из базового имени метода, если сопоставление начинается послеглагол.

...