さて、プロジェクトにサードパーティのコードを追加しようとするまで、プロジェクトで ARC を喜んで使用してきました。フォルダーをドラッグしました(プロジェクトファイルではなく、ビューコントローラーのソースファイルだけです)。サード パーティのコードは ARC ではなかったので、[編集] -> [リファクタリング] -> [Objective-C ARCに変換] を選択し、サード パーティ アプリからのファイルのみを選択して ARC に変換しました。すべてが順調に進みましたが、以前に動作していたコードで次の警告が表示され始めました。
TTKSoundGenerator.m:94:10: warning: '__bridge' casts have no effect when not using ARC [-Warc-bridge-casts-disallowed-in-nonarc]
(__bridge CFStringRef)soundFile,
^~~~~~~~
1 warning generated.
これは、何かがおかしいという最初の手がかりです。先に進んでビルドして実行すると、まだ参照されている間に何かがリリースされる場所でアプリがクラッシュすることを確認します。そのため、プロジェクト ファイルでObjective-C の自動参照カウントがYESに設定されているにもかかわらず、ARC はまったく機能していません。
私は戻って、プロジェクト内のすべてのファイルでEdit->Refactor->Convert To Objective-C ARCを実行しましたが、これを修正することはできませんでした。そのため、現在、プロジェクトは ARC の辺境で立ち往生しています。リファクタリングを実行するときにファイルの選択を解除すると、何らかの形で Xcode に「No ARC」の特別なケースをそれらのファイルに追加するように指示されたようです。これを修正またはさらに診断する方法についてのアイデアはありますか?