Xcode에서 "To Do"주석을 어떻게 표시 할 수 있습니까?


111

현재 저는 iOS 기반 이미지 조작 작업을하고 있습니다.

문제:

저는 다른 모듈에서 작업하고 있습니다. 그래서 나중에 모듈에 무언가를 추가해야한다면 할 일 메모로 표시하고 싶습니다. Xcode에서 할 일 메모를 추가하는 다른 매크로 또는 이와 유사한 것이 있습니까?

나는 시도했다 :

이를 위해 현재 다음 #pragma과 같이 사용 하고 있습니다.

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

나는 얻었다 :

그러나 다음과 같이 방법 섹션에 나열됩니다.

할 것

내가 실제로 필요한 것 :

문제는 메서드 목록 아래에 나열되어 있기 때문에 섹션에서 제거하는 것을 잊었 기 때문에 전체 소스 코드에서 찾기가 매우 어렵습니다. (전체 목록을 표시하기 위해 #pragma 결과 검색)

기술적 세부 사항:

Xcode 버전 4.6.2를 사용하고 있습니다.


Xcode가 모든 메소드, pragma 표시 및 TODO 주석을 나열하는 특정보기에 어떻게 액세스합니까?
Mischa 2014 년

@Mischa : 내 대답을 확인하십시오. 방법 목록 표시 줄 아래에 있습니다.
Midhun MP

귀하의 답변을 확인했지만 해당 팝업을 표시하는 방법에 대한 힌트를 찾지 못했습니다. 하지만 지금은 찾은 것 같습니다. "탐색"막대의 코드 편집기 상단에 있습니다. 맞죠?
Mischa

Btw : 프로젝트의 모든 TODO를 한 번에 표시 할 수있는 방법이 있습니까?
Mischa

@Mischa : 예, 코드 편집기의 맨 위에 있습니다. 제가 아는 한 모든 주석을 한 번에 표시 할 방법이 없습니다 (전체 프로젝트를 검색하는 대신)
Midhun MP

답변:


133

알았어.

다음과 같은 댓글 작성 :

// TODO: Do something

트릭을 할 것입니다.

나는 다음과 같은 것을 얻었다.

할 것


또한 다음과 같은 많은 옵션이 있습니다 .

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun

16
// FIXME : 또는 #warning을 사용할 수도 있습니다. #warning을 사용하면 Xcode에서 경고가 표시되고 해당 부분으로 바로 이동할 수 있습니다.
brush51

6
@ Dev2rights가 한 시간 전에 게시 한 것이 아닌가요? 그의 대답을 받아들이지 그래?
trojanfoe 2013-06-04

@trojanfoe : 네. 그러나 나는 // MARK : 및 #warning에 대한 더 적절한 솔루션을 얻었습니다. 그건 내가 인정하지 않는 이유의
Midhun MP

1
// FIXME, // MARK그리고 #warning동일하지 않습니다 // TODO귀하의 질문에 대답하지 않고 있도록.
trojanfoe 2013-06-04

1
@Domsou : 현재 나열된 옵션 외에 사용 가능한 다른 옵션이 없습니다. 답변이 있으면 업데이트하겠습니다.
Midhun MP

129
// TODO: the thing todo

할일 작업을 표시하는 방법입니다.


10
// FIX: Everything crashes all the time사용하면 점프 바를 사용하여 문제를 생성하는 코드 부분으로 쉽게 돌아갈 수 있습니다.
Maarten

이상하게 엑스 코드 5.1.1에서 주석 표시되지 않습니다이를 사용하여
loretoparisi

여기에 관련된 것이 개 더 마커와 # 오류 # 회신하는 i.imgur.com/KVjrVwG.png
젠 헬튼

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컴파일 타임에 경고하기 때문에 최선의 솔루션 이라고 생각 합니다. 감사합니다
오리

36

아래 스크립트를 사용하면 경고와 같은 모든 필수 태그를 볼 수 있습니다.

  1. 프로젝트 네비게이터에서 프로젝트를 선택하십시오.
  2. 사이드 바에서 타겟을 열고 "Build Phases"탭으로 이동합니다.
  3. "+"기호를 클릭하십시오.
  4. "새 실행 스크립트 빌드 단계"를 선택합니다. 스크립트 추가
  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/"

여기에 이미지 설명 입력

원래 답변은 Here 에서 가져 왔습니다.

또 다른 대안은 Xcode 용 XToDo 플러그인입니다.


훌륭한 솔루션, 모든 포드 파일을 제외하는 방법이 있습니까? 사용 된 확장 프로그램에 Todos 또는 Mixmes가 몇 개 있습니까?
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

나는 시작했다

// 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"를 찾습니다.

파일 개요 드롭 다운을 사용하면 현재 파일에 대한 TODO 만 표시되지만 프로젝트의 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:것입니다. 한꺼번에 처리하려면 Find Navigator, match case를 선택하면됩니다. 및 검색//Todo:

나는 spagetti-code처럼 보이는 방법 드롭 다운을 좋아하지 않기 때문에 이것을 선호합니다. 그리고 예, 저는 종종 많은 Todo : 's를 가지고 있습니다.)


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.