gpt4 book ai didi

objective-c - 如何从 Objective-C 访问我的 Swift 单例

转载 作者:行者123 更新时间:2023-11-28 05:56:39 25 4
gpt4 key购买 nike

我有一个 Swift 类:

@objc
public class MZAActiveState: NSObject {
@objc static let privateSharedInstance = MZAActiveState()
..
@objc
public class func shared() -> MZAActiveState {
return privateSharedInstance
}
@objc var color: UIColor? = .red
}

在我的 Objective-C 类中,我包含了 Swift header (并且在此文件中声明了 Singleton 及其“共享”方法):

#import "SketchWorkshop-Swift.h"

我在方法中引用静态共享实例:

- (void) doSomething:(id)sender
{
[self.colorPickerController setInitialColor:[MZAActiveState shared].color];

}

我没有收到编译器警告或构建错误,但颜色没有设置。如果我在行上放置一个断点并键入:

(lldb) po [MZAActiveState shared].color;

我明白了:

error: use of undeclared identifier ‘MZAActiveState'

我希望能够看到 [MZAActiveState shared],因为它是静态的并且(我相信)暴露给 Objective-C。我错过了什么?

这些链接没有回答问题:

Related Question ,

Another Related Question ,

Here's a Third

最佳答案

问题是你没有颜色

@objc var color: UIColor?

@objc var color: UIColor = UIColor.red

值得一提的是,objective-c 不会响应 nil 设置并且根本不会崩溃

关于objective-c - 如何从 Objective-C 访问我的 Swift 单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51308757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com