根据Apple文档initialize()
方法在收到第一条消息之前初始化类。
有人可以解释为什么initialize()在Release构建配置中不起作用吗?
例如:
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
答案 0 :(得分:3)
我做了一个快速测试,除非你创建了一个类的实例,否则在Release
配置+ initialize
中看起来不会被调用。但是在Debug
调用类方法就足以触发+initialize
。看起来像一个无证的警告。
编辑:
更有趣的事实是,对于Debug
和Release
配置中的Objective-C项目,调用类方法足以触发+ initialize
。我会说这是一个错误。您可能想为它提供雷达。