swift函数不包含在autogenerated -Swift.h伞文件中

时间:2018-03-21 09:24:27

标签: objective-c swift xcode

我按照本指南尝试从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。 这是一个错误还是我错过了什么?

1 个答案:

答案 0 :(得分:3)

您需要在要从Objective-C访问的每个函数之前添加@objc

@objc public class MySwiftClass: NSObject {
    // modifiers public, open do not help
    @objc func Hello() -> String {
        return "Swift says hello!";
    }
}