首页 文章

在swift中调用objective-c类方法

提问于
浏览
0

我的iOS项目包含objective-c代码和swift代码 .

说,我有一个名为 Task 的类,它包含一个 class method do

@interface Task: NSObject
+ (void) doSomething:(NSString *) value;
@end

上面的@interface声明在 Task.h 文件中 . 其他objective-c类能够毫无问题地调用该方法 .

我的 swift 代码想要调用 doSomething 方法,

Task.doSomething(“do task now!”)

但上面的代码行得到以下编译器错误:

‘Task.Type’ does not have a member named ‘doSomething’.

为什么?在swift代码中调用objective-c类方法的正确方法是什么?

(Objective-c和swift之间生成的桥接接口没有问题 . )

1 回答

  • 0

    我认为问题是“do”是一个保留关键字 . 我尝试了这个并得到了一个稍微不同的错误(关于错过一个while循环的括号),但是将方法更改为“doSomething”修复了问题 .

    通过将@interface声明移动到Task.m而不是Task.h,我能够重现您看到的错误 . 请确认您拥有此代码的位置,因为只有在.h文件中才能看到其他类 .

相关问题