Tìm tài liệu tham khảo phương thức trong Xcode


174

Có cách nào trong Xcode để tìm tất cả những nơi mà một phương thức hoặc thuộc tính đã được gọi không?

Ví dụ, trong Eclipse, bạn có thể nhấp chuột phải vào một phương thức và chọn Tìm tài liệu tham khảo . Có điều gì tương tự trong Xcode không?

Câu trả lời:


252
  1. Chọn phương thức bạn quan tâm hoặc định vị con trỏ văn bản trong đó.
  2. Mở menu "Tập tin liên quan" thông qua biểu tượng ở góc trên bên trái của Trình chỉnh sửa. (Đó là nút ngay bên trái nút quay lại).
  3. Đi tới menu con "Người gọi" để biết danh sách tất cả các phương thức gọi phương thức đã chọn và nhấp vào bất kỳ phương thức nào để chuyển đến tệp và phương thức đó.

Trong tranh...

Ảnh chụp màn hình của bước 1 và 2 ở trên.

Ảnh chụp màn hình của bước 3 ở trên

Một vài lưu ý:

  • Bạn có thể làm điều này cho các tài sản quá.
  • Lưu ý rằng khi bạn chọn một phương thức gọi từ menu Người gọi để chuyển đến nơi phương thức của bạn được gọi, Xcode chỉ làm nổi bật cuộc gọi đầu tiên . Mỗi phương thức gọi sẽ chỉ hiển thị trong danh sách 'Người gọi' một lần, ngay cả khi nó chứa nhiều cuộc gọi đến phương thức của bạn. Vì vậy, nếu bạn đang cố gắng thực hiện một số thay đổi ở mọi nơi trong ứng dụng của mình, nơi một phương thức được gọi, hãy cẩn thận đừng bỏ lỡ một số nơi mà phương thức gọi có hai cuộc gọi đến phương thức bạn quan tâm.

34
Phím tắt mặc định để hiển thị menu ^1để tôi thường có thể nhấn ^1, c, enterđể hiển thị danh sách.
Peter Theill

Điều này tìm thấy tất cả các Caller của phương thức và các cài đặt cha. Có cách nào để tìm Người gọi chỉ thực hiện việc này không?
Daniel Kaplan

1
@DanielKaplan Tôi đoán là không, vì trong ít nhất một số trường hợp trình biên dịch sẽ không có cách nào để biết cách thực hiện nào sẽ được gọi.
Đánh dấu Amery

Phương thức của tôi được gọi init, và điều này cũng đưa ra bất kỳ phương thức nào có tên init. Không thông minh lắm ...
Nathan H

36

Có, mở trình soạn thảo Trợ lý và thay vì Đối tác chọn Người gọi.

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


1
Bạn không phải sử dụng trình chỉnh sửa phân tách cho việc này, mặc dù nó có thể thuận tiện nếu bạn sẽ chỉnh sửa nhiều phương thức gọi liên tiếp. Xem câu trả lời của tôi.
Đánh dấu Amery

18

Kể từ XCode 4.5, bạn có thể nhấp vào "Hiển thị tùy chọn tìm kiếm" trong trường tìm kiếm của Bộ điều hướng tìm kiếm. Ở đó bạn có thể chỉ định "Tham chiếu biểu tượng"

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


2
Đây là một cải tiến nhỏ so với tìm kiếm trần, nhưng nó trả về tất cả các tham chiếu, không chỉ là một tìm kiếm cụ thể mà bạn đang tìm kiếm. Chẳng hạn, nếu bạn có một lớp có thuộc tính "chiều cao", việc tìm kiếm các tham chiếu ký hiệu trên thuộc tính chiều cao của bạn sẽ trả về các tham chiếu cho tất cả các loại thuộc tính chiều cao khác mà bạn đã sử dụng, do đó bạn vẫn phải chọn lọc các kết quả để tìm ra các kết quả bạn tìm thấy muốn Đối với một bản hack hoạt động khá độc đáo, hãy xem điều này: stackoverflow.com/a/5457479/850721
Mike Lorenz


7

Đặt điểm chèn trong một lời gọi hoặc khai báo phương thức và chọn Tìm> Tìm biểu tượng được chọn trong dự án. Đối với các bộ chọn nhiều phần, phần này sẽ chỉ làm nổi bật phần đầu tiên nhưng việc tìm kiếm dường như hoạt động tương đối đáng tin cậy. Thay vào đó, bạn cũng có thể sử dụng Tìm kiếm phân cấp cuộc gọi làm nổi bật toàn bộ dòng.

Mục menu ngữ cảnh tương ứng (Tìm biểu tượng được chọn trong không gian làm việc) cũng hoạt động, nhưng sẽ khó hơn một chút để làm việc đúng cách. Đảm bảo không có văn bản nào được chọn nếu không nó sẽ tìm kiếm từ đã chọn thay vì toàn bộ bộ chọn. Để làm như vậy, bạn có thể nhấp bằng nút chuột trái trước khi nhấp bằng nút chuột phải (hoặc nhấp vào Điều khiển) trong cùng một vị trí. Không có vấn đề như vậy với Phân cấp Tìm kiếm theo ngữ cảnh.


Nó cũng rất hữu ích để có một phím tắt cho cùng, việc gỡ lỗi trở nên nhanh hơn rất nhiều
Naishta

-11

Với xcode 4, giờ đây bạn có thể nhấp chuột phải vào tài liệu tham khảo và chọn "chuyển đến định nghĩa".


12
Điều đó trả lời cho câu hỏi ngược lại.
Richard
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.