ค้นหาวิธีการอ้างอิงใน Xcode


174

มีวิธีใน Xcode เพื่อค้นหาสถานที่ทั้งหมดที่มีการเรียกวิธีการหรือคุณสมบัติหรือไม่

ในคราสตัวอย่างเช่นคุณสามารถคลิกขวาที่วิธีการและเลือกการอ้างอิงค้นหา มีอะไรที่คล้ายกันใน Xcode?

คำตอบ:


252
  1. เลือกวิธีที่คุณสนใจหรือวางเคอร์เซอร์ข้อความไว้ข้างใน
  2. เปิดเมนู "ไฟล์ที่เกี่ยวข้อง" ผ่านไอคอนที่ด้านบนซ้ายของตัวแก้ไข (เป็นปุ่มที่อยู่ทางด้านซ้ายของปุ่มย้อนกลับทันที)
  3. ไปที่เมนูย่อย "ผู้โทร" เพื่อดูรายการวิธีการทั้งหมดที่เรียกใช้วิธีการที่เลือกและคลิกรายการใดรายการหนึ่งเพื่อข้ามไปยังไฟล์และวิธีการนั้น

ในภาพ ...

สกรีนช็อตของขั้นตอนที่ 1 และ 2 ด้านบน

สกรีนช็อตของขั้นตอนที่ 3 ด้านบน

หมายเหตุสองประการ:

  • คุณสามารถทำสิ่งนี้เพื่อคุณสมบัติได้เช่นกัน
  • โปรดทราบว่าเมื่อคุณเลือกวิธีการโทรจากเมนูผู้โทรเพื่อข้ามไปยังตำแหน่งที่คุณโทรมานั้น Xcode จะเน้นเฉพาะการโทรครั้งแรกเท่านั้น วิธีการโทรแต่ละวิธีจะแสดงในรายการ 'ผู้โทร' เพียงครั้งเดียวแม้ว่าจะมีวิธีการโทรของคุณจำนวนมาก ดังนั้นหากคุณกำลังพยายามเปลี่ยนแปลงบางอย่างในทุกสถานที่ในแอปพลิเคชันของคุณซึ่งมีการเรียกใช้วิธีการโปรดระวังอย่าพลาดในสถานที่ที่วิธีการโทรมีการโทรสองวิธีที่คุณสนใจ

34
ช็อตคัตเริ่มต้นสำหรับแสดงเมนูใน^1ดังนั้นฉันมักจะสามารถกด^1, c, enterเพื่อแสดงรายการ
Peter Theill

สิ่งนี้จะพบผู้โทรทั้งหมดของวิธีการและการใช้งานผู้ปกครอง มีวิธีหาผู้โทรของการดำเนินการนี้เท่านั้นหรือไม่?
Daniel Kaplan

1
@DanielKaplan ฉันจะเดาไม่ได้เพราะอย่างน้อยในบางกรณีคอมไพเลอร์จะไม่มีทางรู้ว่าการดำเนินการที่จะเรียกว่า
Mark Amery

เมธอดของฉันถูกเรียกใช้initและนี่จะเรียกใช้เมธอดใดก็ได้initเช่นกัน ไม่ฉลาดเลย ...
Nathan H

36

ใช่เปิดเครื่องมือแก้ไขผู้ช่วยและแทนที่จะเป็นคู่เลือกผู้โทร

ป้อนคำอธิบายรูปภาพที่นี่


1
คุณไม่จำเป็นต้องใช้ตัวแก้ไขการแยกสำหรับสิ่งนี้แม้ว่ามันจะสะดวกถ้าคุณกำลังจะแก้ไขวิธีการโทรจำนวนมากอย่างต่อเนื่อง ดูคำตอบของฉัน
Mark Amery

18

ตั้งแต่ XCode 4.5 คุณสามารถคลิกที่ "แสดงตัวเลือกการค้นหา" ในช่องค้นหาของนาวิเกเตอร์การค้นหา คุณสามารถระบุ "การอ้างอิงสัญลักษณ์"

ป้อนคำอธิบายรูปภาพที่นี่


2
นี่คือการปรับปรุงเล็กน้อยในการค้นหาที่ไม่เปิดเผย แต่จะส่งคืนการอ้างอิงทั้งหมดไม่ใช่เฉพาะที่คุณกำลังมองหา ตัวอย่างเช่นหากคุณมีคลาสที่มีคุณสมบัติ "ความสูง" การค้นหาการอ้างอิงสัญลักษณ์บนคุณสมบัติความสูงของคุณจะส่งคืนการอ้างอิงไปยังคุณสมบัติความสูงอื่น ๆ ทุกประเภทที่คุณใช้ดังนั้นคุณยังต้องกรองผลลัพธ์เพื่อค้นหาสิ่งที่คุณต้องการ ต้องการ. สำหรับแฮ็คที่ใช้งานได้ดีดูได้จาก: stackoverflow.com/a/5457479/850721
Mike Lorenz


7

วางจุดแทรกในการเรียกใช้วิธีการหรือการประกาศและเลือกค้นหา> ค้นหาสัญลักษณ์ที่เลือกในโครงการ สำหรับตัวเลือกแบบหลายส่วนจะเน้นเฉพาะส่วนแรก แต่การค้นหาดูเหมือนจะทำงานได้อย่างน่าเชื่อถือ นอกจากนี้คุณยังสามารถใช้ค้นหาลำดับชั้นการโทรซึ่งไฮไลต์ทั้งบรรทัดแทน

รายการเมนูตามบริบทที่สอดคล้องกัน (ค้นหาสัญลักษณ์ที่เลือกในเวิร์กสเปซ) ใช้งานได้เช่นกัน ตรวจสอบให้แน่ใจว่าไม่มีข้อความใดถูกเลือกมิฉะนั้นจะค้นหาคำที่เลือกแทนตัวเลือกทั้งหมด ในการทำเช่นนั้นคุณสามารถคลิกด้วยปุ่มซ้ายของเมาส์ก่อนคลิกด้วยปุ่มเมาส์ขวา (หรือ Control-click) ในตำแหน่งเดียวกัน ไม่มีปัญหาดังกล่าวกับลำดับชั้นการค้นหาตามบริบท


มันยังมีประโยชน์มากที่จะมีแป้นพิมพ์ลัดสำหรับเดียวกันการแก้จุดบกพร่องได้รับมากเร็ว
Naishta

-11

ด้วย xcode 4 ตอนนี้คุณสามารถคลิกขวาที่การอ้างอิงและเลือก "ข้ามไปที่คำจำกัดความ"


12
นั่นเป็นคำตอบของคำถามตรงข้าม
Richard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.