前提環境
Xcode 12.1
前置き
Xcode上で、関数やprotocolの呼び出し元を調べたい場合、
- カーソルを合わせて右クリックし、
- コンテキストメニューから
Find Call Hierarchy
を選択すると、
左ペインの Find navigator に、呼び出し元のツリーが表示されます。
問題事象
コードを改修しながら Find Call Hierarchy
を実行すると、改修前のコードがヒットしてしまい、もう呼び出していないはずなのに、呼び出し元のツリーに表示されてしまう場合があります。
地味に煩わしいです…
- Xcodeメニューの
Product > Clean Build Folder
で直る場合があるような気もするし、 - Gitのブランチを切り替えると直る場合があるような気もするし、
- Xcode再起動で直る場合があるような気もするし、
どれをやっても一向に解消しない場合もあります。
Xcode上部のステータス領域に"Indexing..."が表示されているタイミングで再構築しているのかな?と思いきや、その後でもやはり解消しない場合があるような…
都度あれこれ試すのもイライラするので、確実に回避したい!と考えた次第です。
私なりにたどり着いた回避方法
私は今のところ以下の方法で回避しています。
まず、Macアプリ DevCleaner for Xcode を入れます。
詳細はこちらの記事が素晴らしいのでご紹介しておきます。
Xcodeの面倒なキャッシュ削除をGUIで行えるMacアプリ『DevCleaner for Xcode』 - DevelopersIO
以下の操作を行います。