Xcode'da "Yapılacaklar" açıklamalarını nasıl işaretleyebilirim?


111

Şu anda iOS tabanlı bir Görüntü İşleme görevi üzerinde çalışıyorum.

Sorun:

Farklı modüller üzerinde çalışıyorum. Dolayısıyla, gelecekte bir modüle bir şey eklemem gerekirse, bunu Yapılacaklar notu olarak işaretlemek istiyorum. Xcode'da yapılacaklar notu eklemek için başka makrolar veya benzeri var mı?

Denedim:

Bunun için şu anda şöyle kullanıyorum #pragma:

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

Bende var:

Ancak Yöntem bölümünde şu şekilde listelenir:

Yapmak

Aslında ihtiyacım olan şey:

Sorun şu ki, yöntemler listesinin altında listeleniyor, bu yüzden bazen bunu bölümden kaldırmayı unuttum, ayrıca tüm kaynak kodunda bulmak çok zor. (Listelerin tamamını göstermek için #pragma sonuçları aranıyor)

Teknik detaylar:

Xcode Sürüm 4.6.2 kullanıyorum.


Xcode'un tüm yöntemleri, pragma işaretlerini ve TODO ek açıklamalarını listelediği o görünüme nasıl ulaşabilirim?
Mischa

@Mischa: Cevabımı kontrol edin, yöntem listeleme çubuğunun altında.
Midhun MP

Cevabınızı kontrol ettim ve bu açılır pencereyi nasıl göstereceğim konusunda bir ipucu bulamadım. Ama sanırım şimdi buldum: Bu "gezinme" çubuğundaki kod düzenleyicinin üstünde, değil mi?
Mischa

Btw: Projenin tüm TODO'larını aynı anda göstermenin bir yolu var mı?
Mischa

@Mischa: Evet, kod düzenleyicinin en üstünde ve bildiğim kadarıyla yorumları tek seferde yapmanın bir yolu yok (Tüm projeyi aramak yerine)
Midhun MP

Yanıtlar:


133

Anladım.

Şunun gibi yorum yazıyor:

// TODO: Do something

Hile yapacak.

Bende şöyle bir şey var:

YAPMAK


Ayrıca şu gibi birçok seçenek var :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun

16
// FIXME: veya #warning'i de kullanabilirsiniz. #warning'i kullandığınızda, Xcode'da bir uyarı alırsınız ve doğrudan o kısma atlayabilirsiniz.
brush51

6
@ Dev2rights'in sizden bir saat önce yayınladığı şey bu değil mi? Neden cevabını kabul etmiyorsun?
trojanfoe

@trojanfoe: evet. Ama benim için daha uygun bir çözüm buldum // MARK: ve #warning. Bu yüzden kabul etmedim
Midhun MP

1
Eh // FIXME, // MARKve #warningaynı // TODOşey değil ve bu yüzden sorunuzu cevaplamıyor.
trojanfoe

1
@Domsou: Şu anda listelenenlerin dışında başka seçenek yok. Herhangi bir cevap alırsam cevabımı güncelleyeceğim.
Midhun MP

129
// TODO: the thing todo

Yapılacak görevleri nasıl gösterirsiniz.


10
Ayrıca // FIX: Everything crashes all the time, Jump Çubuğunu kullanarak kodunuzun sorunlara neden olan bölümlerine geri dönmeyi kolaylaştırmak için de kullanabilirsiniz .
Maarten

Garip bir şekilde bunu kullanmak, yorumu XCode
5.1.1'de göstermiyor

Burada alakalı görünen 2 işaret daha #warning ve #error i.imgur.com/KVjrVwG.png
Zane Helton

3
Nitpick: //ve arasına bir boşluk koyun TODO:. Örneğin: // TODO: Read this from prefs. Swift ve Objective C dillerinin belgelerini gözden geçirirseniz, bu uzay sözleşmesi oldukça tutarlı bir şekilde takip edilir.
Jeffro

43

Kullanmak

//TODO: some thing here

tek yapmak istediğiniz, açılır menüdeki yapılacaklar listesine bakmaksa işe yarar

Müdahaleci olmak istiyorsanız #warningbunun yerine işaretleri kullanabilirsiniz :

#warning this will create a compiler warning.

Ve uygulamayı oluşturduğunuzda, size yapmanız gereken şeyleri hatırlatmakla ilgili biraz daha "yüzünüzde" olan bir derleyici uyarısı (sarı bir üçgen, bir derleyici hatası değil) alacaksınız.


Bence #warningen iyi çözüm çünkü sizi derleme zamanında uyaracak. Teşekkürler
Duck

36

Aşağıdaki komut dosyası ile uyarılar gibi gerekli tüm etiketleri görebilirsiniz.

  1. Proje Gezgini'nde projenizi seçin
  2. Hedefi kenar çubuğunda açın ve "Derleme Aşamaları" sekmesine gidin
  3. "+" İşaretine tıklayın
  4. "Yeni Çalıştırma Komut Dosyası Oluşturma Aşaması" nı seçin Komut dosyası ekleme
  5. Aşağıdaki komut dosyasını "Komut Dosyasını Çalıştır" a ekleyin Komut Hazır Komut Dosyası dosyası:

    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/"

görüntü açıklamasını buraya girin

Orijinal cevap alındı Burada

Diğer bir alternatif ise Xcode için XToDo eklentisidir.


harika bir çözüm, tüm pod dosyalarını dışlamanın bir yolu var mı? benim kullandığım uzantılarda birkaç Todos oder Mixmes var?
Marco Weber

Bu yazıda kendime bir çözüm buldum stackoverflow.com/q/37157027/6003494 komut dosyası: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

İle başladım

// TODO: Implement bubble sort.

Daha sonra büyük bir projeye katıldım ve bazen bir Devam Eden Çalışma taahhüdünden daha uzun yaşamak için bir yapılacak işe ihtiyacım vardı ve bu nedenle görevlerimi meslektaşlarımdan ayırmak için adımı baş harflerimle araladım:

// TODO: SM: Implement bubble sort

Bazen daha fazla görünürlük istediğim için bazı yerlerde pragma uyarıları kullanmaya başladım.

#warning Implement bubble sort

Bir gün -Werrorcflag'lerime ekleyerek zor modu açmaya karar verdim . Ne yazık ki bu, pragma uyarılarını gereksiz kılar çünkü derlemeyi engellerler. Böylece // TODO:Jeff Nadeau bana koyabileceğimi söyleyene kadar kullanmaya geri döndüm

-Wno-error=#warnings

cflag'lerimde pragma uyarılarını hata olarak görmemek için. Yani şimdi #warningve -Werroryan yana yaşayabilir.


3

Tam olarak yazma eğilimindeyim // TODO: Blah blah blah

Sonra bir COMMAND-SHIFT-F yapıp "// TODO" ararım.

Dosya ana hatları açılır menüsünü kullanmak size yalnızca geçerli dosya için YAPILACAKLAR gösterecektir, ancak projemin TODO durumunu görmek istiyorum.

Kaba çözüm, ama işini yapıyor.


2

Tanınan belirteçleri kendi kullanımım için Uyarılar ve Hatalar olarak böldüm, burada paylaşacağımı düşündüm:

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

Kutunun biraz dışında kalan bir başka basit yöntem, yöntemler listeleme çubuğunu karıştırmak //Todo:istemiyorsanız, yorumlarda bir kural kullanmaktır ve bunları toplu olarak ele almak istediğinizde, Find Navigator, match case ve ara//Todo:

Yöntemlerin spagetti kodu gibi görünmesini sevmediğim için bunu tercih ederim. Ve evet, sık sık pek çok Todo'm var: 's;)


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.