从Objective-C调用Swift类方法

时间:2017-12-04 22:18:41

标签: objective-c swift

我正在使用Objective-C来使用Swift代码,我最终将其转换为Framework / SDK。 我不能专门调用Objective-C的类方法,而且我收到了这个错误

No visible @interface for 'class' declares the selector 'method'

Swift文件

public class Example {

    public class func testOne() -> NSString {
         return "testOne";
    }

    public func testTwo() -> NSString {
         return "testTwo";
    }

}

Objective-C文件

#import <ProjectModuleName-Swift.h>

@interface ...
@end

@implmentation ...
- (void) testing {
  Example *example = [[Example alloc] init];
  NSString *testOne = [example testOne]; // does not work ; No visible @interface for 'Example' declares the selector 'testOne'
  NSString *testTwo = [example testTwo]; // does work
}
@end

显然,通过声明class func它应该需要一种不同的方式来通过Objective-C调用它,但我还没有看到关于这个主题的任何文档。

非常感谢一个例子或帮助。

1 个答案:

答案 0 :(得分:2)

在类上调用类方法,而不是类的实例:

NSString *testOne = [Example testOne];
NSString *testTwo = [Example testTwo];