我无法在swift文件中调用该方法

时间:2019-07-11 10:34:55

标签: objective-c swift

我想从目标c调用一个方法到swift文件。但向我显示DCSideMenuViewController的值没有成员viewControllerFromMenuItem

我在bridging-header.h中导入了目标c文件,但是可以正常工作

  1. 这是一个快捷文件

    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 :(得分:0)

您的方法应转换为以下Swift方法:

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

您始终可以查看生成的Swift界面以找到可用的方法。

在以下建议中,您可以找到如何将Objective C API转换为Swift:https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md

可以在“修剪步骤-> 4”中找到您的案例。4.只要匹配在动词之后开始,就可以从方法的基本名称中为匹配类型修剪匹配。