LoginSignup
2
1

More than 3 years have passed since last update.

[Xcode] Find Call Hierarchyで古いコードがヒットしてしまう事象の回避策(共有&情報募集)

Posted at

前提環境

Xcode 12.1

前置き

Xcode上で、関数やprotocolの呼び出し元を調べたい場合、

  1. カーソルを合わせて右クリックし、
  2. コンテキストメニューから Find Call Hierarchy を選択すると、

左ペインの Find navigator に、呼び出し元のツリーが表示されます。
スクリーンショット 2021-04-24 9.12.38.png

問題事象

コードを改修しながら Find Call Hierarchy を実行すると、改修前のコードがヒットしてしまい、もう呼び出していないはずなのに、呼び出し元のツリーに表示されてしまう場合があります。

地味に煩わしいです…

  • Xcodeメニューの Product > Clean Build Folder で直る場合があるような気もするし、
  • Gitのブランチを切り替えると直る場合があるような気もするし、
  • Xcode再起動で直る場合があるような気もするし、

どれをやっても一向に解消しない場合もあります。

Xcode上部のステータス領域に"Indexing..."が表示されているタイミングで再構築しているのかな?と思いきや、その後でもやはり解消しない場合があるような…

都度あれこれ試すのもイライラするので、確実に回避したい!と考えた次第です。

私なりにたどり着いた回避方法

私は今のところ以下の方法で回避しています。

まず、Macアプリ DevCleaner for Xcode を入れます。
詳細はこちらの記事が素晴らしいのでご紹介しておきます。
Xcodeの面倒なキャッシュ削除をGUIで行えるMacアプリ『DevCleaner for Xcode』 - DevelopersIO

以下の操作を行います。

  1. DevCleanerにて、"Derived Data"から該当アプリのデータを削除する。
  2. Xcodeプロジェクトを開き直す。 スクリーンショット 2021-04-24 9.21.26.png 「もっと簡単・確実に回避できるよ!」という情報をお持ちの方がいらっしゃいましたら、ぜひ情報提供をお願いいたします。:bow_tone1:
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1