2011-07-28 5 views
245

Xcode에서 #pragma 마크의 목적은 무엇입니까? .m 파일의 위치가 중요합니까? 다른 사람보다 먼저 #pragma을 입력해야합니까?#pragma marks의 의미는 무엇입니까? #pragma marks가 필요한 이유는 무엇입니까?

  • 존재해야합니까?
  • 새 마크를 추가 할 수 있습니까? 왜 그랬을까요? 그 원인은 무엇입니까?
  • 마크 제거시 문제가 있습니까? 혹시 원했을까요?
+4

링크를 확인하십시오. http://cocoasamurai.blogspot.com/2006/09/tip-pragma-mark-organizing-your-source.html – rptwsthi

+0

개인적으로 나는 그것을 좋아하지 않습니다. 진지하게, 당신은 당신이 항상 방법을 집어 넣어야한다고 생각하고 싶습니까? Single Responsibility Principle에주의를 기울이는 것과 같이 조직을 유지하는 것이 훨씬 더 중요합니다. –

+1

신속한 언어 #Pragma mark는 작동하지 않습니다. #MARK 또는 #FIXME 또는 #TODO를 사용하여 자세한 정보를 확인하십시오. http://stackoverflow.com/a/33040068/1753005 –

답변

286

#pragma mark 지시어는 메소드에 직접 액세스하기위한 메뉴의 Xcode에 표시됩니다. 그들은 프로그램에 전혀 영향을 미치지 않습니다.

예를 들어 Xcode 4와 함께 사용하면 해당 항목이 바로 가기 막대에 나타납니다.

라인을 만드는 특별한 pragma mark -이 있습니다. 당신은 쉽게 찾아 점프 바에서 방법을 검색 할 수 있도록

enter image description here

52

#pragma mark 이 방법의 그룹에 태그를 사용한다. 코드 파일이 약 1000 줄에 이르렀을 때 점프 상자에서 범주를 신속하게 찾을 수있는 방법을 찾는 데 도움이 될 수 있습니다.

긴 프로그램에서는 메서드 이름을 기억하고 찾기가 어려워집니다. 따라서 pragma mark을 사용하면 메소드를 작업에 따라 분류 할 수 있습니다. 예를 들어, Table View Protocol Methods, AlertView Methods, Init Methods, Declaration 등의 일부 태그에 태그를 붙였습니다.

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

18

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

10

크고 긴 클래스가 100 줄 이상의 코드를 몇 개 말하면 모니터 화면에서 모든 것을 볼 수 없으므로 클래스의 개요 (문서 항목이라고도 함)를 볼 수 없습니다. 언젠가 우리는 우리 반의 개요를보고 싶다. 그것의 모든 메서드, 상수, 속성 등을 한눈에. Xcode에서 Ctrl + 6을 눌러 수업 개요를 볼 수 있습니다. 창 일명 점프 바 (Windows aka Jump Bar)라는 팝업 상자가 나타납니다.

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

점프 바에 섹션을 만들려면 관련 설명이있는 플러그 - 마 표시를 사용할 수 있습니다. 이제 문제의 스냅 샷을 참조하십시오. 'lifeCycle보기'및 '전용 섹션 ...'은 pragma mark에 의해 생성 된 섹션입니다.

7

컴파일러에 대한 지시어 인 pragma를 가리키는 doc을 검색 할 때이 작업은 꽤 잘 수행되는 것으로 나타났습니다.당신은 당신이 다른 십오 일을에서 열고 C++ 프로젝트를 처리하는 경우, 그것은 필요가 없도록, pragma mark이 엑스 코드는 특정 :

난 당신이

12

그냥 내가 찾고 있던 정보를 추가 읽기를 즐길 수 있습니다 희망 거기에 어떤 영향. 예를 들어, Qt Creator에서 메서드의 범주를 추가하거나 경고/오류를 생성하지 않습니다.

편집

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

Xcode는 #pragma을 사용하는 IDE이며 고유 한 방식으로 사용합니다. 요점은 #pragma이 Xcode가 아니며 Objective-C에만 해당한다는 것입니다.

1
#pragma mark - NSSecureCoding 

"pragma"의 주된 목적은 개발자를위한 것입니다. enter image description here

수천 개의 코딩 라인에서 쉽게 메소드/기능을 찾을 수 있습니다.

+0

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

+1

** ** pragma-mark ** 제거는 코드 기능에 영향을 미치지 않지만 코드 가독성을 잃을 수 있습니다. 정말로 원하지 않으면 제거 할 수 있습니다. –

+0

대단원입니다! #pragma-mark와 컴파일러/빌드/실행과 관련이없는 다른 모든 것들은 정말 싫다. – YumYumYum

관련 문제