根据 Apple 文档,initialize()
方法在接收第一条消息之前初始化类。
有人可以解释为什么 initialize() 在发布构建配置中不起作用吗?
例如:
class Test: NSObject {
override class func initialize() {
print("initialize")
}
class func test() {
print("test")
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Test.test()
}
}
调试配置中的输出:
initialize
test
发布配置中的输出:
test
最佳答案
我做了一个快速测试,它看起来像在 Release
配置中 + initialize
不会被调用,除非你创建一个类的实例。但是在 Debug
中调用类方法就足以触发 +initialize
。看起来像是一个未记录的警告。
编辑:
更有趣的事实是,对于在 Debug
和 Release
配置中调用类方法的 Objective-C 项目足以触发 + initialize
。我会说这是一个错误。您可能想要为它提交一个雷达。
关于ios - 发布构建配置中未调用 NSObject 的 initialize(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40783657/