これは、NSProgressIndicator または Xcode 9 のバグのように見えます。
- macOS 10.12.6 で Xcode 9 Beta 1 または Beta 4 を実行します。
- ファイル > 新しいプロジェクト、macOS、Cocoa アプリ、Objective-C または Swift、ARC かどうか、ストーリーボードなし、最新 (10.13) SDK。
- アプリ ターゲットの環境で、 を設定し
CA_ASSERT_MAIN_THREAD_TRANSACTIONS=1
ます。 - アプリ デリゲートで IBOutlet を追加します
progressIndicator
。 - nib で、ウィンドウに NSProgressIndicator を追加し、そのアウトレットに接続します。Indeterminateチェックボックスをオンのままにします。
- で
-applicationDidFinishLaunching
、 を呼び出し-startAnimation:
ますprogressIndicator
。 - ビルドして実行します。
期待される結果:
メインスレッドですべてを行ったので、進行状況インジケーターは不確定な進行状況を喜んで表示するはずです。
実結果:
が呼び出されると、CA_ASSERT_MAIN_THREAD_TRANSACTIONS を引用してアプリがクラッシュし
-startAnimation:
ます。
これは、小さなデモ プロジェクトで確認できます。
私は何か悪いことをしましたか?期待される結果は正しくありませんか?
PS Apple の開発者フォーラムでこれを尋ねましたが、2 営業日後にモデレーターの承認を待っているので、削除して代わりにここに来ました :(
更新: まだ説明が不足しているため、Apple Bug 33593575 を提出しました。