Skip to content

Comment Usage

Rey edited this page Jul 28, 2022 · 2 revisions

주석

  • 한줄 주석

    한줄 주석에는//만을 사용합니다.

  • 여러줄 주석

    두 줄 이상의 주석을 작성할때는 /* */ 를 사용합니다.

  • 주석의 들여쓰기는 주석과 관련된 코드와 일치 시킵니다.

    단, 여러줄 주석의 경우 주석 기호를 기준으로 2개의 space를 사용합니다.

    // 한줄 주석
    
    /*
    	주석이
    	두개지요.
    */
  • ///를 사용해서 문서화에 사용되는 주석을 남깁니다.

    • 문서화에 사용되는 주석이란, option key를 누른 채로 해당 함수 또는 프로퍼티를 클릭했을 때 볼 수 있는 Summary의 내용입니다.
    /// 사용자 프로필을 그려주는 뷰
    class ProfileView: UIView {
    
      /// 사용자 닉네임을 그려주는 라벨
      var nameLabel: UILabel!
    }

Pragma Label

Pragma 사용에는 정답이 없습니다! 아래 가이드처럼 사용하다가 불편함이 발생한다면 알려주세요!

일반 주석이 단순한 형태로 정보를 전달한다면, Pragma 주석은 내 코드를 보는 다른 사람에게 반드시 전달해야한다고 판단되는 내용을 적습니다.

그렇기에 다른 사람이 Pragma 주석을 사용했는지 잘 확인해주세요.

Pragma 주석은 Xcode의 Navigation Selector와 함께 쓰면 더욱 편리합니다.

스크린샷 2022-07-28 오전 9 24 03
  • MARK: 코드의 가독성을 위해 사용됩니다. 코드 파일에서 네비게이터의 역할을 합니다.

  • TODO: 해당 부분(라인)에 추가적으로 구현되야할 내용을 적습니다.

    // TODO: 붉은색 로직 구현
    func touchRedButton() {
        
    }
  • FIXME: 수정이 필요한 부분들을 적습니다.

    예를 들면, 다른 사람이 작업하는 부분에서 수정되어야하는 부분을 발견했을 때 사용할 수 있습니다.

    // FIXME: 색상 변경 로직 수정 필요함
    func touchRedButton() {
        backgroundColor = .black
    }
  • -: 구분선을 생성합니다.

    MARK의 경우, Xcode 에디터상에 구분선이 생성되고, 나머지의 경우 네비게이터에만 생성됩니다.

    따라서 MARK에만 사용합니다.

  • !!!: 해당 프로젝트에서는 사용하지 않습니다.

  • ???: 코드 상에 궁금한 점, 풀리지 않는 점을 작성합니다.

    // ???: 왜 작동되는지 모르겠음
    func touchRedButton() {
        backgroundColor = .someColor
    }
스크린샷 2022-07-28 오전 9 07 31 스크린샷 2022-07-28 오전 9 10 06

MARK

  • // MARK:를 사용해서 연관된 코드를 구분짓습니다.

  • Objective-C에서 제공하는 #pragma mark와 같은 기능으로, 연관된 코드와 그렇지 않은 코드를 구분할 때 사용합니다.

  • 구문 위와 아래에는 공백이 필요합니다.

    // MARK: Init
    
    override init(frame: CGRect) {
      // doSomething()
    }
    
    deinit {
      // doSomething()
    }
    
    // MARK: Layout
    
    override func layoutSubviews() {
      // doSomething()
    }
    
    // MARK: Actions
    
    override func menuButtonDidTap() {
      // doSomething()
    }
  • Mark Label

    • SwiftUI View
    // MARK: State ProPerties
    -> property Wrapper가 있는 let, var
    -> 순서: AppStorage, Environment, EnvironmentObject, State, Binding, ObservedObject, StateObject
    -> 순서에 명시되지 않은 Wrapper는 가장 마지막에 오름차순으로 작성
    
    // MARK: General ProPerties
    -> property Wrapper가 없는 let, var
    
    // MARK: Methods
    
    // MARK: ViewBuilder
    -> @ViewBuilder가 wrapping된 모든 것
    ->, ProPerties, Methods 순서로 작성
    
    // MARK: Life Cycles
    -> init, body
    • OberverableObject Class
    // MARK: State ProPerties
    // SwiftUI View와 동일
    
    // MARK: Published ProPerties
    -> @Published let, var
    
    // MARK: General ProPerties
    
    // MARK: Methods
    
    // MARK: Life Cycles
    • UIViewController
    // UIViewController
    // MARK: - ProPerties
    
    // MARK: - Methods
    
    // MARK: - IBOutlets
    
    // MARK: - IBActions
    
    // MARK: - Delegates And DataSources
    
    // MARK: - Life Cycles
Clone this wiki locally