#스위프트의 프라그마 마크?
목표 C에서는 다음을 사용할 수 있습니다.#pragma mark기호 탐색기에서 내 코드 부분을 표시합니다.이것은 C 프리프로세서명령어이므로 Swift에서는 사용할 수 없습니다.Swift ★★★★★★★★★★★★★★★★★★★★★★?니면추 추글 ?글 글? ???
하시면 됩니다.// MARK:
어쨌든 수업 연장을 자유롭게 사용하는 것이 더 나은 관행일 수도 있다는 논의도 있었다.할 수 들어 뷰를 보다 으로 할 수 .#pragma mark아아아아아아아아아아아아아아아아아아아아.
디렉티브 Xcode 5 입니다.#pragma mark재했했다
Xcode 6을 .// MARK:
이러한 프리프로세서 기능에 의해, 소스 코드 에디터의 기능 드롭 다운 박스에 구조가 표시됩니다.
몇 가지 예:
// MARK:
-> 앞에 가로 구분선이 붙습니다.
// MARK: your text goes here
-> 드롭다운목록에 굵은 글씨로 '텍스트가 여기에 갑니다'를 표시합니다.
// MARK: - your text goes here
-> 드롭다운목록에서 "your text goes here"를 굵은 글씨로 표시하고, 그 앞에 가로 구분 기호를 붙입니다.
update : 스크린샷을 추가하였습니다.이것은 일부 사용자가 아직 문제가 있는 것 같기 때문입니다.

확장 마크와 플러그마 마크(첫 번째 코멘트 참조)의 사용에 관심이 있는 사용자를 위해 Swift Engineer에서 구현하는 방법은 다음과 같습니다.
import UIKit
class SwiftTableViewController: UITableViewController {
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension SwiftTableViewController {
override func numberOfSectionsInTableView(tableView: UITableView?) -> Int {
return 1
}
override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
return 5
}
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
let cell = tableView?.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as UITableViewCell;
cell.textLabel.text = "Hello World"
return cell
}
}
또 꼭 베스트 프랙티스라고는 할 수 없지만, 원한다면 이렇게 하는 것이 좋습니다.
Pragma mark - [SOME TEXT HERE]Objective-C에서 여러 기능을 라인 분리에 의해 그룹화하기 위해 사용되었습니다.
Swift에서는 다음을 사용하여 이 작업을 수행할 수 있습니다.MARK, TODO OR FIXME
i. 마크: //MARK: viewDidLoad
그러면 viewDidLoad(스크린샷1) 아래에 그룹화된 함수와 함께 수평선이 생성됩니다.
ii. TODO: //TODO: - viewDidLoad
그러면 TODO: - viewDidLoad 범주(스크린샷 2에 표시됨)에서 기능이 그룹화됩니다.
iii. FIXME: //FIXME - viewDidLoad
FIXME: - viewDidLoad 카테고리(스크린샷 3에 표시됨)에서 기능을 그룹화합니다.
상세한 것에 대하여는, 이 사과 메뉴얼을 참조해 주세요.
Xcode 공식 문서
Apple의 현재 공식 문서 섹션인 Annote your code for visibility에는 다음과 같은 3가지 코멘트가 소개되어 있습니다.TODO:,FIXME: , , , , 입니다.MARK:.
버전에서 의 코멘트되어 있지 ): "Xcode" (v14.2) "2" ("V14.2")!!!: ★★★★★★★★★★★★★★★★★」???:.
★★★★★★!!!: ★★★★★★★★★★★★★★★★★」???:는 알 수 없는 이유로 일부 Xcode 버전(v10.0 등)에서는 지원되지 않습니다.
샘플 스크린샷 1 - Xcode 14.2 + macOS 13.1 (Ventura)
샘플 스크린샷 2 - Xcode 10.1 + macOS 10.14.3 (모하비)
는 Objective-C의 Xcode와 같은 합니다.// MARK: - foo은, 「휴대성이 좋다」보다 더 이 좋다.#pragma하지만 이것도 아직 주워지지 않은 것 같습니다.
편집: Xcode 6 베타 4로 수정.
대신 더 좋은 방법인 것 같아요.#pragma mark.
전 Extensions:
class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
...
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
...
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
...
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
...
}
}
후 Extensions:
class ViewController: UIViewController {
...
}
extension ViewController: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
...
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
...
}
}
extension ViewController: UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
...
}
}
이것으로 Xcode 8은 다음과 같이 처리되어 메서드드롭다운에 다음과 같이 표시됩니다.
오늘 아침 WWDC의 Swift 랩에 있는 Apple Engineer에게 확인한 결과, 현재 #pragma나 그에 상당하는 제품이 없다고 합니다.그리고 곧 도착할 예정이므로 베타 2를 기대하고 있습니다.
어쨌든, 오고 있어요.
Xcode가 코드 주석을 달 수 있도록 //MARK:, //TODO: 및 //FIXME 랜드마크를 지원하여 점프 바에 나열합니다.
세 .#pragma_mark신속:
1)// MARK: - your text here -
2)// TODO: - your text here -
3)// FIXME: - your text here -
" " 를 사용합니다.- separators의
사용하다
// MARK: SectionName
또는
// MARK: - SectionName
그러면 플러그마 마크 위에 선이 표시되므로 읽기 쉬워집니다.
쉽게 추가할 수 있습니다.
// MARK: - <#label#>
코드 스니펫으로 이동합니다.
대체 방법 -
이렇게 사용하다
private typealias SectionName = ViewController
private extension SectionName {
// Your methods
}
이것에 의해, 마크가 추가될 뿐만 아니라(프래그마 마크와 같이), 코드를 적절히 분리할 수 있습니다.
//# MARK: - Spinner Class Methods
콜론과 설명 사이에 줄을 추가하여 구분줄을 삽입합니다.이렇게 하면 코드를 더욱 정리할 수 있습니다.위의 코드와 스크린샷에서는 행이 포함된 MARK 코멘트를 사용합니다.
- //# 마크: – 텍스트 메서드(LINE)
- //# MARK: 텍스트 방식(라인 없음)
이것은 MARK 코멘트만으로 동작합니다.
또한 다음과 같은 Swift 4.2 / XCode 10 컴파일러 디렉티브에 관심이 있을 수 있습니다.
#warning("Some string to display")
그리고.
#error("Some error to display")
정말 뭔가를 놓치고 싶지 않을 때 도움이 될 수 있어요.
전문 프로그래머는 이 태그를 사용하여 코드를 올바르게 작성해야 합니다.그것은 또한 팀워크에도 좋다.
// MARK: example Web Service start here
// TODO: example 1
// FIXME: Please change BASE url before live
이런 방법은 찾기 쉽다

에서는, 하게 할 수을 Xcode 에서 활성화 할 수 있습니다.Editor -> Minimap.
Minimap은 코드의 빠른 방향을 위해 각 마크 텍스트를 표시합니다. 마크는 '마음표'라고 요.// MARK: Variables
//MARK:Xcode 6.3.2에서는 동작하지 않는 것 같습니다.다만, 다음과 같이 동작시키고 있습니다.
1) 코드:
import Cocoa
class MainWindowController: NSWindowController {
//MARK: - My cool methods
func fly() {
}
func turnInvisible() {
}
}
② ② jump bar 않는 것처럼 .//MARK: 코멘트.하지만 점프바에서 맨 오른쪽 이름을 클릭하면MainWindowController(with a leading C icon)그러면 //MARK: 코멘트, 즉 "My cool methods"라는 제목의 효과를 보여주는 팝업 창이 나타납니다.

3) 코드의 메서드 중 하나를 클릭하면 점프바의 맨 오른쪽 엔트리가 됩니다.입수하기 위해서MainWindowController(with a leading C icon)점프바에서 가장 오른쪽 엔트리가 되려면 메서드 위의 공백을 클릭해야 합니다.
Apple은 Building Cocoa Apps의 최신 버전에서 언급하고 있다.
Swift 컴파일러에는 프리프로세서가 포함되어 있지 않습니다.대신 컴파일 시간 속성, 빌드 구성 및 언어 기능을 활용하여 동일한 기능을 구현합니다.따라서 Swift에서는 프리프로세서 디렉티브는 Import되지 않습니다.
# 문자는 여전히 다양한 빌드 구성 등에서 작업할 수 있는 것처럼 보이지만, 플러그마의 관점에서 대부분의 전처리에 대한 요구를 줄이고 다른 언어 기능으로 전송하려는 것으로 보입니다.아마도 이것은 Playgrounds와 REP가 완전히 컴파일된 코드에 최대한 가깝게 동작하는 데 도움이 될 것입니다.
플러그마 마크는 코드 가독성을 향상시키는 방법입니다.플러그마 코멘트는 Xcode 점프바에 태그와 같이 표시됩니다.
//MARK: <Your comment goes here>
예:코드에서
//MARK: Properties
// MARK: View Life cycle
//MARK: Helper methods
Xcode 점프바에는 이렇게 표시됩니다.
할 일 항목 추가:TODO: 접두사가 붙은 주석을 삽입합니다.예: // TODO: [할 일 항목]
버그 수정 알림 추가:FIXME: 접두사가 붙은 코멘트를 삽입합니다.예: // FIXME: [버그 수정 알림]
제목을 추가합니다.MARK: 접두사가 붙은 주석을 삽입합니다.예: // MARK: [섹션 제목]
구분선 추가:주석 위에 구분 기호를 추가하려면 주석의 주석 부분 앞에 하이픈(-)을 추가합니다.예: // MARK: - [내 콘텐츠]주석 아래에 구분 기호를 추가하려면 주석의 주석 부분 뒤에 하이픈(-)을 추가합니다.예: // MARK: [내 콘텐츠] -
이것을 시험해 보세요.
// MARK: Reload TableView
func reloadTableView(){
tableView.reload()
}
언급URL : https://stackoverflow.com/questions/24017316/pragma-mark-in-swift
'programing' 카테고리의 다른 글
| cshtml vs aspx를 선택하는 것이 좋은 이유는 무엇입니까? (0) | 2023.04.20 |
|---|---|
| Java에서 XLSX 파일 읽기 (0) | 2023.04.20 |
| 파일이 존재하는지 확인한 후 삭제하는 방법 (0) | 2023.04.20 |
| Ruby 2.0.0p0 IRB 경고: "DL은 더 이상 사용되지 않습니다. 바이올린을 사용하십시오." (0) | 2023.04.20 |
| SqlParameter가 이미 다른 SQLParameterCollection에 포함되어 있습니다.사용()은 부정행위입니까? (0) | 2023.04.20 |









