在 Swift 中访问静态 objective C 方法

Access static objective C method in Swift

在我的 Obj-C 文件中,我有这个静态成员和 getter :

//******* DBASplashViewController.m ********
static SWRevealViewController *staticRVC;
+ (SWRevealViewController*)currentSWRevealViewController
{
    return staticRVC;
}

//******* DBASplashViewController.h ********
+ (SWRevealViewController*)currentSWRevealViewController;

在我的 swift 代码中,这一行有一个错误:

let SWVC = DBASplashViewController.currentSWRevealViewController

Error : *DBASplashViewController has no member currentSWRevealViewController*

编辑:

这是我的桥接文件:

 #import "DBASplashViewController.h"

如你所见,DBASplashViewController 被 XCode 完美解释,但不是静态方法:

我做错了什么?

注意currentSWRevealViewController是一个方法,不是属性,如果你想执行它你应该使用下面的符号,基本上是加一对圆括号。否则这将 return 实际上是 (function).

的函数类型
let SWVC = DBASplashViewController.currentSWRevealViewController()

假设您有正确的桥接 Header 并且 staticRVC 变量按预期工作,这将起作用。

经过长时间的调查,我的桥接中似乎缺少导入 header。

DBASplashViewController.currentSWRevealViewController() 必须 return 类型为 SWRevealViewController 的 object。

看来我忘了在我的桥接中加入这条线 header :

#import "SWRevealViewController.h"

由于 return 类型定义在 Swift 部分,我可以访问我的静态变量。