#pragma marks의 의미는 무엇입니까? 왜 #pragma 마크가 필요한가요?


279

#pragmaXcode에서 마크 의 목적은 무엇입니까 ? .m파일 에서의 위치가 중요합니까? 어떤 #pragma사람들은 다른 사람들보다 먼저 와야합니까?

  • 그들이 있어야합니까?
  • 새로운 마크를 추가 할 수 있습니까? 왜 그런가요? 무엇이 원인입니까?
  • 자국을 제거하면 해가 있습니까? 누군가가 원할까요?


나는 개인적으로 그들을 좋아하지 않습니다. 진심으로, 항상 방법을 어디에 두어야하는지 생각하고 싶습니까? 단일 책임 원칙에주의를 기울이는 것과 같이 조직적으로 유지해야 할 훨씬 더 중요한 것들이 있습니다.
Brad Thomas

2
빠른 언어의 경우 #Pragma 마크가 작동하지 않습니다. 사용 #MARK 또는 #FIXME 또는 #TODO 더 많은 정보에 대한 링크를 확인 stackoverflow.com/a/33040068/1753005
Jayprakash Dubey

답변:


315

#pragma mark메소드에 직접 액세스 할 수 있도록 지시문이 메뉴의 Xcode에 표시됩니다. 그들은 프로그램에 전혀 영향을 미치지 않습니다.

예를 들어 Xcode 4와 함께 사용하면 해당 항목이 점프 막대에 직접 나타납니다.

pragma mark -선을 만드는 스페셜 이 있습니다.

여기에 이미지 설명을 입력하십시오


답을 이해하십시오-새 XCode에서 pragma 마크가 어떤 모양인지 (그 메뉴 또는 현재 위치에 있음) 업데이트 된 답변을 게시 할 수 있습니까?
user7804781

파이썬에 상응하는 것이 있습니까?
Edward Falk

@EdwardFalk IDE에 따라 다르므로 IDE / 텍스트 편집기에 따라 다릅니다.
Michael Ozeryansky

내 GCC 컴파일러는 경고 foo.h : 52 : 0 : warning : #pragma mark [-Wunknown-pragmas] #pragma mark-를 무시했습니다. 치명적이지는 않습니다. 따라서 gcc는 아마도 '-'에 대해 모른다.
Kemin Zhou

55

#pragma mark메소드 모음에 태그를 지정하여 점프 막대에서 메소드를 쉽게 찾고 감지 할 수 있도록하는 데 사용됩니다. 코드 파일이 약 1000 줄에 도달하고 점프 상자의 범주를 통해 메소드를 신속하게 찾고 싶을 때 도움이 될 수 있습니다.

긴 프로그램에서는 메소드 이름을 기억하고 찾는 것이 어려워집니다. 그래서 프라 그마 표시가 있습니다 당신은 그들이하는 일에 따라 방법을 분류합니다. 예를 들어, 테이블 뷰 프로토콜 메소드, AlertView 메소드, 초기화 메소드, 선언 등에 태그를 태그했습니다.

#pragma markXCode의 기능이지만 코드에는 영향을 미치지 않습니다. 코딩하는 동안 메소드를 쉽게 찾을 수 있도록 도와줍니다.


21

간단히 말해서 #pragma mark -분석법을 분류하는 데 사용되므로 분석법을 쉽게 찾을 수 있습니다. 긴 프로젝트에 매우 유용합니다.


13

내가 찾은 정보를 추가하는 것만 : pragma markXcode에 따라 다르므로 다른 IDE에서 여는 C ++ 프로젝트를 처리하는 경우 아무런 영향을 미치지 않습니다. 예를 들어, Qt Creator에서 메소드의 카테고리를 추가하거나 경고 / 오류를 생성하지 않습니다.

편집하다

#pragmaC 프로그래밍 언어에서 제공되는 전 처리기 지시문입니다. 그 목적은 구현 종속 정보를 컴파일러에 지정하는 것입니다. 즉, 각 컴파일러는이 지시문을 원하는대로 해석하도록 선택할 수 있습니다. 즉, 코드 자체에 영향을주지 않거나 영향을 미치지 않는 확장으로 간주됩니다. 따라서 컴파일러도 무시할 수 있습니다.

Xcode는 IDE를 #pragma고유 한 방식으로 활용 하고 사용 하는 IDE입니다 . 요점은 #pragmaXcode가 아니며 심지어 Objective-C에 국한된 것입니다.


11

크고 긴 클래스에 100 줄 이상의 코드가 있다고 말하면 모니터 화면에서 모든 것을 볼 수 없으므로 클래스의 개요 (문서 항목이라고도 함)를 볼 수 없습니다. 때때로 우리는 수업의 개요를보고 싶어합니다. 모든 메소드, 상수, 속성 등을 한 눈에 볼 수 있습니다. XCode에서 Ctrl + 6을 누르면 클래스 개요를 볼 수 있습니다. 팝업 종류의 창 일명 점프 바가 나타납니다.

기본적으로이 점프 막대에는 버킷 / 섹션이 없습니다. 하나의 긴 목록 일뿐입니다. (점프 바가 나타나면 타이핑을 시작할 수 있지만 점프 바 항목 중에서 검색합니다). 여기에 필요가 온다pragma mark

점프 막대에서 섹션을 만들려면 관련 설명과 함께 프라 그마 표시를 사용할 수 있습니다. 이제 첨부 된 스냅 샷을 참조하십시오. 'A 섹션은 전용 ..'가 '보기 라이프 사이클'과 만든 부분이다 pragma mark


10

pragma가 컴파일러에 대한 지시문이되는 방법을 지적하기 위해 문서를 검색하는 동안이 NSHipster 기사를 찾았습니다. 가 작동했습니다.

나는 당신이 독서를 즐기시기 바랍니다


7
#pragma mark - NSSecureCoding

"pragma"의 주요 목적은 개발자 참조 용입니다.여기에 이미지 설명을 입력하십시오

수천 개의 코딩 라인에서 분석법 / 기능을 쉽게 찾을 수 있습니다.

Xcode 11 이상 :

상단의 마커 라인

// MARK: - Properties

상단과 하단의 마커 라인

// MARK: - Properties - 

하단의 마커 라인

// MARK: Properties -

그래서 선을 제거 할 수 있습니까? 내 뇌를위한 공간 낭비.

1
# pragma-mark를 제거해도 코드의 기능에는 영향을 미치지 않지만 코드의 가독성이 떨어질 수 있습니다. 정말로 원하지 않으면 제거 할 수 있습니다.
Jeba Moses
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.