我无法从我的 Objective-C ViewController 访问我的 Swift Singleton 类。
Xcode 确实识别了我的 Swift 类,它构建了,所以我不认为这是一个桥接头问题。
这是我的 Swift 单例类:
@objc class MySingleton : NSObject {
static let shared = MySingleton()
private override init() {}
}
然后在我的 .m 文件中导入此 header :
#import "myProject-Swift.h"
并以这种方式使用单例:
MySingleton *testSingleton = [MySingleton shared];
或者这样:
[MySingleton shared];
它确实识别 MySingleton 类类型,但我无法访问此类的任何函数或属性。
我错过了什么?所有类似的帖子都没有帮助。
编辑:我做了一个测试函数
func testPrint() {
print("Singleton worked")
}
并在 objective-c 文件中这样调用它:
[[MySingleton shared] testPrint];
No known instance for selector 'testPrint'
最佳答案
在您的 Swift Singleton 类中,为方法 testPrint()
添加 @objc
,例如:
@objc func testPrint() {
print("Singleton worked")
}
现在,您从 Objective-C 类访问该方法:
[[MySingleton shared] testPrint];
关于iOS - 无法从 Objective-C 访问 Swift Singleton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46949815/