Java Ka Baby
Java Ka Baby

Reputation: 4920

Find method references in Xcode

Is there a way in Xcode to find all the places where a method or property has been been called?

In Eclipse, for example, you can right-click a method and select Find references. Is there anything similar in Xcode?

Upvotes: 196

Views: 63115

Answers (6)

Uladzimir
Uladzimir

Reputation: 3496

Select function, press cmd-shift-A, "Callers"

enter image description here

Upvotes: 30

Nicholas Riley
Nicholas Riley

Reputation: 44351

Place the insertion point in a method invocation or declaration and choose Find > Find Selected Symbol In Project. For multipart selectors this will only highlight the first part but searching does seem to work relatively reliably. You can also use Find Call Hierarchy which highlights the entire line instead.

The corresponding contextual menu item (Find Selected Symbol in Workspace) also works, but it's a bit trickier to make work properly. Make sure no text gets selected otherwise it'll search for the selected word rather than the entire selector. To do so, you can click with the left mouse button prior to clicking with the right mouse button (or Control-clicking) in the same location. There's no such issue with the contextual Find Call Hierarchy.

Upvotes: 7

Mark Amery
Mark Amery

Reputation: 155125

  1. Select the method you're interested in, or position the text cursor within it.
  2. Open the "Related Files" menu via the icon at the top-left of the Editor. (It's the button immediately to the left of the back button).
  3. Go to the "Callers" submenu for a list of all methods that call the selected method, and click any of them to jump to that file and method.

In pictures...

Screenshot of steps 1 and 2 above.

Screenshot of step 3 above

A couple of notes:

  • You can do this for properties too.
  • Note that when you select a calling method from the Callers menu to jump to where your method was called, Xcode highlights only the first call. Each calling method will only show up in the 'Callers' list once, even if it contains many calls to your method. So if you're trying to make some change at every place in your application where a method is called, be careful not to miss some in places where a calling method contains two calls to the method you're interested in.

Upvotes: 270

Alex Terente
Alex Terente

Reputation: 12036

Yes, open the Assistant editor and instead of Counterparts select Callers.

enter image description here

Upvotes: 37

SystematicFrank
SystematicFrank

Reputation: 17269

As of XCode 4.5 you can click on "Show find options" within the search field of the Search Navigator. There you can specify "Symbol References"

enter image description here

Upvotes: 18

Scott Looze
Scott Looze

Reputation: 1

With xcode 4 you can now right click on references and select "jump to definition."

Upvotes: -14

Related Questions