如何在目标 c 中使用 swift 类(不是类的实例)

Ish*_*wal 3 objective-c ios swift

在主要的objective-c 应用程序中使用swift 代码的所有教程都经历了这个Apple 文档中提到的这个过程https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

但是这种导入xyzProjectName-swift.h文件然后使用的方法

MySwiftClass *swiftObject = [[MySwiftClass alloc] init];
[swiftObject swiftMethod];
Run Code Online (Sandbox Code Playgroud)

要求我创建该 swift 类的一个实例。是否可以直接访问类本身[MySwiftClass swiftMethod];

直到现在,我才能够做到这一点。我是否必须以某种方式更改我的 swift 代码才能实现这一目标?

Ark*_*kku 5

刚刚尝试了以下内容:

class MySwiftClass: NSObject {
    static func swiftMethod() -> String {
        return "hello"
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Objective-C 中:

NSLog(@"Received from Swift: %@", [MySwiftClass swiftMethod]);
Run Code Online (Sandbox Code Playgroud)

对我有用 - 你确定你的swiftMethodstatic,不是private?你也可以尝试@objc在 - 前面添加static func- 如果没有别的,至少它可能会警告你,如果存在无法从 Objective-C 访问的原因。