【发布时间】:2015-08-18 14:34:38
【问题描述】:
我的 iOS 项目同时包含 Objective-c 代码和 swift 代码。
说,我有一个名为Task的类,它包含一个类方法 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之间的桥接接口没有问题。)
【问题讨论】:
-
这可能只是贴出的代码中的一个类型,但是方法声明在obj-c接口中需要一个分号。
-
我只是忘记添加分号,我的objective-c代码中有分号。
-
您能否澄清您引用的@interface 声明位于哪个文件中?它需要在 .h 文件中才能看到。其他 Objective-c 类是否能够调用该方法?
-
我更新了我的问题,@interface 声明在 Task.h 中,其他objective-c 类可以毫无问题地调用该方法
标签: ios objective-c swift swift2