我按照本指南尝试从Objective-C访问Swift类方法 https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html
这是我的Swift课程:
import Foundation
@objc public class MySwiftClass: NSObject {
// modifiers public, open do not help
func Hello()->String {
return "Swift says hello!";
}
}
以下是自动生成的"伞的摘录"文件MyProductModuleName-Swift.h
SWIFT_CLASS("_TtC25_MyProductModuleName12MySwiftClass")
@interface MySwiftClass : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
似乎XCode完全忽略了MySwiftClass的方法,因此我无法从Objective-C访问它们。 Xcode版本是9.2。 这是一个错误还是我错过了什么?
答案 0 :(得分:3)
您需要在要从Objective-C访问的每个函数之前添加@objc
:
@objc public class MySwiftClass: NSObject {
// modifiers public, open do not help
@objc func Hello() -> String {
return "Swift says hello!";
}
}