5
アップルのドキュメントinitialize()
によると、最初のメッセージを受け取る前にクラスを初期化します。リリースビルドコンフィグレーションでNSObjectの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
回答ありがとうございます。作成されたバグレポートhttps://openradar.appspot.com/29389821 –
特定の設定はSwiftコンパイラ - コード生成/最適化レベルのようです。 'なし[-Onone]と'高速、単一ファイルの最適化[-O] ' – DDP