Chức năng người gọi tìm Xcode


117

Trong Xcode, làm cách nào để tôi có thể tìm thấy tất cả các hàm người gọi của một hàm cụ thể?


2
Nhân tiện, tôi đã đính kèm một hình ảnh cho câu trả lời của tôi. và các phiên bản XCode ngày nay đều hỗ trợ điều này. bạn có sẵn sàng ủng hộ / chấp nhận một câu trả lời, nếu bạn hài lòng với bất kỳ câu trả lời nào ??
David T.

@uiroshan 's câu trả lời dưới đây là thuận tiện nhất nếu bạn làm điều này rất nhiều (⌘ + Ctrl + Shift + H)
drpawelo

Câu trả lời:


125

Xcode 4.5 (trong bản beta) có chức năng này. khi bạn đánh dấu hàm say ..., bạn có thể kiểm tra "người gọi" và "người gọi"

chỉnh sửa tôi tin rằng nó nằm ở trên cùng bên trái của bảng điều khiển tệp cho tệp đó ... vì vậy hãy nhấp đúp vào chức năng để đánh dấu nó, và bạn nhấp vào tùy chọn bảng điều khiển tệp (tùy chọn có "mở gần đây, mở chưa lưu ... vv "thả xuống

CHỈNH SỬA # 2

đây là một hình ảnh để làm rõ (vì tôi không biết nút menu này được gọi là gì) nhập mô tả hình ảnh ở đây:

CŨNG ĐƯỢC - Tôi tin rằng XCode 4.5 không còn là phiên bản beta nữa và thực sự đã ra mắt công chúng

CHỈNH SỬA # 3

cũng lưu ý rằng điều người gọi này KHÔNG tìm kiếm để được gọi theo performSelectorphương thức, vì trong đó, trình gọi cụ thể có điều này performSelectorsẽ không hiển thị nếu bạn đã làm điều gì đó như:

[self performSelector:@selector(checkIfShouldStopMovement) withObject:nil afterDelay:0.25];

5
Nó thực sự là View-> Standard Editor-> Show Related Items, hãy xem câu trả lời của tôi ( stackoverflow.com/a/13472334/888091 ).
pille vào

2
@pille À. Tôi hiểu rồi, tôi không biết bạn có thể truy cập nó theo cách đó. Tôi đã ủng hộ câu trả lời của bạn và tôi đã chỉnh sửa câu trả lời của mình để hiển thị theo cách giao diện người dùng. Cảm ơn vì lối tắt !!
David T.

55

Trong XCode 4.5, phương pháp nhanh nhất là:

  1. Chọn phương pháp trong mã (nhấp đúp hoặc đánh dấu bằng con trỏ chuột của bạn)
  2. Nhấn Ctrl+1
  3. Chọn "Người gọi" từ menu bật lên.

Đây là phím tắt để đi View-> Standard Editor-> Show Related Items trong menu tiêu đề của XCode.


1
Menu Người gọi cũng phân biệt ngữ cảnh, vì vậy bạn không cần phải chọn phương pháp trước. Chỉ cần đặt nó ở bất cứ đâu trong phương thức mà bạn muốn xem người gọi trước khi gọi phím tắt <kbd> Ctrl </kbd> + <kbd> 1 </kbd>.
Jay

Ngọt ngào, không biết điều đó!
pille

2
Tôi không thể tin rằng có được không nhanh hơn cách ... Tôi khá thất vọng với Xcode sau khi sử dụng IntelliJ
stevo.mit

35

sử dụng tổ hợp phím ⌘ + Ctrl + Shift + H trên XCode 7 trở đi.


2
Giải pháp đẹp. Cảm ơn bạn!
Myxtic

Con trỏ phải ở trên tên hàm.
Ali Momen Sani

Trong trường hợp bạn đã chỉnh sửa phím tắt của mình: hãy tìm kiếm "Tìm phân cấp cuộc gọi"
brainray

4
Tôi sẽ bẻ ngón tay để bấm tổ hợp này!
Accid Bright

Cảm ơn, tôi đang tìm kiếm loại giải pháp này.
Hitesh Agarwal

23

Điều này cũng có thể được truy cập thông qua trình chỉnh sửa trợ lý, như được hiển thị trong ảnh chụp màn hình bên dưới. Bất kỳ phương pháp nào bạn có điểm chèn trong trình chỉnh sửa chính ở bên trái sẽ hiển thị trình gọi của nó trong trình chỉnh sửa trợ lý. Tôi thấy đây là cách tốt nhất để xem qua từng người gọi liên tiếp, vì sau khi bạn đã chọn "Người gọi", sau đó bạn có thể chọn người gọi tiếp theo thông qua menu bật lên tiếp theo ở bên phải trong thanh nhảy.

nhập mô tả hình ảnh ở đây


Điều này thật tuyệt - nhưng tôi phải mất một lúc để tìm ra cách bắt đầu. Đối với những người khác theo dõi tôi: hãy lưu ý rằng trong ảnh chụp màn hình của Brian, menu thả xuống đang mở không phải là menu "Hiển thị các Mục có Liên quan" (ctrl + 1) được đề cập trong một số câu trả lời khác. Thay vào đó, trong trình chỉnh sửa trợ lý, hãy nhấp vào menu thả xuống ở bên phải của nút "Chuyển tiếp" và chọn Người gọi.
Ashley

1
Bạn không cần sử dụng trình soạn thảo trợ lý. Bạn có thể mở cùng một menu trong trình chỉnh sửa chính.
funroll

18

Trong Xcode-7, bạn có chức năng nhận hệ thống cuộc gọi. Nhấp chuột phải vào chức năng và nhấp vào "Find Call Hierarchy": tham chiếu hình ảnh:


4
nó được gọi là "Call Hierarchy" và phím tắt là: CTRL-SHIFT-COMMAND-H (trong khi một cái gì đó được chọn).
Ông Zystem

7

Xcode 10 trở lên dường như đã làm cho nó dễ dàng hơn. Chỉ cần Command Click vào chức năng và bạn sẽ thấy nó trong trình đơn thả xuống.

nhập mô tả hình ảnh ở đây


4

Sử dụng Tìm trong Dự án dưới dạng Văn bản hoặc dưới dạng Biểu tượng.

AFAIK, không có gì tương đương với ví dụ: Hệ thống phân cấp gọi được biết đến từ Eclipse hoặc NetBeans.


1
Có "caller" và "callee" trong xCode.

4

Nhấn ⌘+Ctrl+Shift+Hphím tắt khi một phương pháp ưa thích được chọn (bằng chuột hoặc con trỏ). (theo câu trả lời của @uiroshan)

Nhưng bạn cũng có thể chỉ định bất kỳ phím tắt nào khác trong XCode -> Preferences -> Key Bindings

Chọn một phương pháp và sử dụng ⌘ + Ctrl + Shift + H.  Nhưng bạn cũng có thể chỉ định một phím tắt khác trong XCode -> Preferences -> Key Bindings


1
Cá nhân tôi sử dụng ⌘ + H (. Bạn sẽ phải chuyển đổi un-gán nó từ 'Ẩn XCode' đầu tiên Chỉ cần gõ "Ẩn" trong hộp lọc, chọn nó và xóa với Backspace)
drpawelo

2

Thật kỳ lạ là công cụ tái cấu trúc có thể phát hiện tất cả các lệnh gọi phương thức nhưng không phát hiện được.

Vì vậy, tôi chỉ cần sử dụng nó để đổi tên phương thức của tôi thành một tên duy nhất (ví dụ: đặt lại thành resetPlayer) và sau đó sử dụng tên mới trong tìm kiếm văn bản thông thường.

1.) Menu> Edit> Refactor ...> Đổi tên thành tên duy nhất

2.) tìm kiếm tên mới


Bạn cũng có thể chỉ cần xem lại tất cả các địa điểm sẽ được sửa đổi trong bản xem trước mà không thực sự hoàn thành hoạt động tái cấu trúc.
funroll

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.