在主要是 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];
要求我创建那个 swift 类的一个实例。是否可以像 [MySwiftClass swiftMethod];
直到现在我还没有做到这一点。我是否必须以某种方式更改我的 swift 代码才能实现此目的?
最佳答案
刚刚尝试了以下方法:
class MySwiftClass: NSObject {
static func swiftMethod() -> String {
return "hello"
}
}
在 Objective-C 中:
NSLog(@"Received from Swift: %@", [MySwiftClass swiftMethod]);
对我有用——你确定你的swiftMethod
是static
,而不是private
吗?您也可以尝试在 static func
前面添加 @objc
- 如果没有别的,至少它可能会警告您是否有无法访问的原因 objective-C 。
关于ios - 如何在 objective-c 中使用 swift 类(不是类的实例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31640012/