ฉันจะทำเครื่องหมายความคิดเห็น“ สิ่งที่ต้องทำ” ใน Xcode ได้อย่างไร


111

ตอนนี้ฉันกำลังทำงานกับงานจัดการรูปภาพบน iOS

ปัญหา:

ฉันกำลังทำงานกับโมดูลต่างๆ ดังนั้นหากฉันต้องการเพิ่มบางสิ่งในโมดูลในอนาคตฉันต้องการทำเครื่องหมายเป็นบันทึกสิ่งที่ต้องทำ มีมาโครอื่น ๆ หรือคล้ายกับการเพิ่มสิ่งที่ต้องทำใน Xcode หรือไม่?

ฉันเหนื่อย:

สำหรับสิ่งนี้ตอนนี้ฉันใช้#pragmaเช่น:

#pragma mark -
#pragma mark To do: Add the Image processing methods.

ฉันได้:

แต่แสดงรายการในส่วนวิธีการเช่น:

ทำ

สิ่งที่ฉันต้องการจริงๆ:

ปัญหาคือมันแสดงอยู่ในรายการวิธีการดังนั้นบางครั้งฉันก็ลืมที่จะลบสิ่งนี้ออกจากส่วนนี้และมันยากมากที่จะพบในซอร์สโค้ดทั้งหมด (กำลังค้นหา #pragma ผลลัพธ์เพื่อแสดงรายการทั้งหมด)

รายละเอียดทางเทคนิค:

ฉันใช้ Xcode เวอร์ชัน 4.6.2


ฉันจะไปที่มุมมองเฉพาะนั้นได้อย่างไรโดยที่ Xcode แสดงรายการวิธีการทั้งหมดเครื่องหมาย pragma และคำอธิบายประกอบสิ่งที่ต้องทำ
Mischa

@ มิสช่า: ตรวจสอบคำตอบของฉันซึ่งอยู่ใต้แถบรายการวิธีการ
ผดส.

ฉันตรวจสอบคำตอบของคุณแล้วและไม่พบคำแนะนำในการแสดงป๊อปอัปนั้น แต่ฉันคิดว่าฉันพบแล้วตอนนี้มันอยู่ด้านบนของตัวแก้ไขโค้ดในแถบ "การนำทาง" ใช่ไหม
Mischa

Btw: มีวิธีใดบ้างที่จะแสดงสิ่งที่ต้องทำทั้งหมดของโครงการในครั้งเดียว?
Mischa

@Mischa: ใช่มันอยู่ด้านบนของตัวแก้ไขโค้ดและในความรู้ของฉันไม่มีวิธีแสดงทั้งหมดเพื่อแสดงความคิดเห็นในครั้งเดียว (แทนที่จะค้นหาทั้งโครงการ)
Midhun MP

คำตอบ:


133

ฉันเข้าใจแล้ว.

การเขียนความคิดเห็นเช่น:

// TODO: Do something

จะทำเคล็ดลับ.

ฉันมีสิ่งที่ชอบ:

ทำ


นอกจากนี้ยังมีตัวเลือกมากมายเช่น :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun

16
คุณยังสามารถใช้ // FIXME: หรือ # คำเตือน เมื่อคุณใช้ # คำเตือนคุณจะได้รับคำเตือนใน Xcode และคุณสามารถข้ามไปยังส่วนนั้นได้โดยตรง
brush51

6
นั่นคือสิ่งที่ @ Dev2rights โพสต์เมื่อหนึ่งชั่วโมงก่อนคุณไม่ใช่เหรอ? ทำไมคุณไม่ยอมรับคำตอบของเขา
โทรจัน

@trojanfoe: ใช่ แต่ฉันมีทางออกที่ดีกว่าสำหรับฉัน // MARK: และ # คำเตือน นั่นเป็นเหตุผลที่ฉันไม่ยอมรับมัน
Midhun MP

1
ดี// FIXME, // MARKและ#warningไม่ได้เช่นเดียวกับ// TODOและอื่น ๆ ที่ไม่ได้ตอบคำถามของคุณ
โทรจัน

1
@Domsou: ขณะนี้ไม่มีตัวเลือกอื่นนอกจากตัวเลือกในรายการ ฉันจะอัปเดตคำตอบหากได้รับ
ผดส.

129
// TODO: the thing todo

เป็นวิธีที่คุณแสดงสิ่งที่ต้องทำ


10
คุณยังสามารถใช้// FIX: Everything crashes all the timeเพื่อให้กลับไปยังส่วนต่างๆของโค้ดที่สร้างปัญหาได้ง่ายขึ้นโดยใช้ Jump Bar
Maarten

การใช้สิ่งนี้อย่างแปลกประหลาดไม่แสดงความคิดเห็นใน XCode 5.1.1
loretoparisi

อีก 2 เครื่องหมายที่ดูเหมือนจะเกี่ยวข้องที่นี่คือ # คำเตือนและ#error i.imgur.com/KVjrVwG.png
Zane Helton

3
nitpick: ใส่ช่องว่างระหว่างและ// TODO:ตัวอย่างเช่น: // TODO: Read this from prefs. หากคุณตรวจสอบเอกสารของภาษา Swift และ Objective C การประชุมอวกาศนี้จะปฏิบัติตามอย่างสม่ำเสมอ
Jeffro

43

ใช้

//TODO: some thing here

ใช้งานได้ถ้าสิ่งที่คุณต้องการทำคือดูรายการสิ่งที่ต้องทำในเมนูแบบเลื่อนลง

หากคุณต้องการล่วงล้ำคุณสามารถใช้#warningเครื่องหมายแทน:

#warning this will create a compiler warning.

และเมื่อคุณสร้างแอปคุณจะได้รับคำเตือนของคอมไพเลอร์ (สามเหลี่ยมสีเหลืองไม่ใช่ข้อผิดพลาดของคอมไพเลอร์) ซึ่งเป็น "ใบหน้าของคุณ" อีกเล็กน้อยเกี่ยวกับการเตือนคุณถึงสิ่งที่คุณต้องทำ


ฉันคิดว่า#warningเป็นทางออกที่ดีที่สุดเพราะมันจะเตือนคุณในเวลาคอมไพล์ ขอบคุณ
Duck

36

ด้วยสคริปต์ด้านล่างคุณสามารถดูแท็กที่จำเป็นทั้งหมดเช่นคำเตือน

  1. เลือกโครงการของคุณใน Project Navigator
  2. เปิดเป้าหมายในแถบด้านข้างแล้วย้ายไปที่แท็บ "ขั้นตอนการสร้าง"
  3. คลิกที่เครื่องหมาย "+"
  4. เลือก "New Run Script Build Phase" การเพิ่มสคริปต์
  5. เพิ่มสคริปต์ด้านล่างเพื่อ "เรียกใช้สคริปต์" สคริปต์พร้อม สคริปต์:

    KEYWORDS="TODO:|FIXME:|DevTeam:|XXX:"
    find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"
    

ใส่คำอธิบายภาพที่นี่

คำตอบเดิมถูกนำมาจากที่นี่

อีกทางเลือกหนึ่งคือปลั๊กอินXToDoสำหรับ Xcode


ทางออกที่ดีมีวิธียกเว้นไฟล์พ็อดทั้งหมดหรือไม่ มีส่วนผสมของ Todos oder สองสามอย่างในส่วนขยายที่ใช้ของฉัน
Marco Weber

พบวิธีแก้ปัญหาด้วยตัวเองในโพสต์นี้stackoverflow.com/q/37157027/6003494สคริปต์คือ:KEYWORDS="TODO:|FIXME:|\?\?\?:|\!\!\!:" find "." \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "./Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"
Marco Weber

6

คุณสามารถใช้ปลั๊กอิน XToDo

https://github.com/trawor/XToDo

ใช้ ctrl + t เพื่อเปิด / ปิดหน้าต่างรายการ

ใช้ ctrl + t เพื่อเปิด / ปิดหน้าต่างรายการ

ตัวอย่างแถบเครื่องมือ

ติดตั้งง่ายด้วย alcatraz ใช้ ctrl + t เพื่อเปิด / ปิดหน้าต่างรายการ


1
กำลังเลื่อนลงเพื่อแนะนำว่าแนะนำอย่างสมบูรณ์
MANIAK_dobrii

6

ฉันเริ่มต้นด้วย

// TODO: Implement bubble sort.

จากนั้นฉันก็เข้าร่วมโปรเจ็กต์ขนาดใหญ่และบางครั้งฉันก็ต้องการสิ่งที่ต้องทำเพื่อให้มีชีวิตอยู่ได้นานกว่าการคอมมิต WIP ดังนั้นเพื่อแยกสิ่งที่ต้องทำออกจากเพื่อนของฉันฉันตั้งชื่อสิ่งที่ต้องทำด้วยชื่อย่อของฉัน:

// TODO: SM: Implement bubble sort

บางครั้งฉันต้องการการมองเห็นมากขึ้นดังนั้นฉันจึงเริ่มใช้คำเตือน pragma ในบางแห่ง

#warning Implement bubble sort

วันหนึ่งฉันตัดสินใจเปิดโหมดยากโดยเพิ่ม-Werrorcflags ของฉัน น่าเสียดายที่สิ่งนี้ทำให้คำเตือน pragma ไร้ประโยชน์เนื่องจากป้องกันการคอมไพล์ ดังนั้นฉันจึงกลับไปใช้// TODO:จนกว่า Jeff Nadeau จะบอกว่าฉันใส่ได้

-Wno-error=#warnings

ใน cflags ของฉันเพื่อที่จะไม่ถือว่าคำเตือน pragma เป็นข้อผิดพลาด ตอนนี้#warningและ-Werrorสามารถอยู่เคียงข้างกันได้


3

ฉันมักจะเขียนว่า // TODO: Blah blah blah

จากนั้นฉันก็ทำการ COMMAND-SHIFT-F แล้วมองหา "// TODO"

การใช้โครงร่างไฟล์แบบเลื่อนลงจะแสดงเฉพาะสิ่งที่ต้องทำสำหรับไฟล์ปัจจุบันเท่านั้น แต่ฉันมักจะต้องการดูสถานะสิ่งที่ต้องทำของโครงการของฉัน

วิธีแก้ปัญหาคร่าวๆ แต่ได้ผล


2

ฉันแยกโทเค็นที่รู้จักออกเป็นคำเตือนและข้อผิดพลาดสำหรับการใช้งานของฉันเองคิดว่าจะแชร์ที่นี่:

KEYWORDS="STUB:|WARNING:|TODO:|FIXME:|DevTeam:|\?\?\?:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: warning: \$1/"

KEYWORDS="ERROR:|XXX:|\!\!\!:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"
ERROR_OUTPUT=`find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"`

exit ${#ERROR_OUTPUT}

0

อีกวิธีง่ายๆนอกกรอบเล็กน้อยหากคุณไม่ต้องการเกะกะแถบรายการวิธีการคือการใช้การประชุมภายในความคิดเห็นเช่น//Todo:และเมื่อคุณต้องการที่จะจัดการกับพวกเขาทั้งหมดเพียงแค่เลือกค้นหาเนวิเกเตอร์กรณีที่ตรงกัน และค้นหา//Todo:

ฉันชอบสิ่งนี้มากกว่าเพราะฉันไม่ชอบวิธีการแบบเลื่อนลงที่ดูเหมือน spagetti-code และใช่ฉันมักจะมีสิ่งที่ต้องทำมากมาย:;)


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