-
Notifications
You must be signed in to change notification settings - Fork 8
Comment Usage
-
한줄 주석
한줄 주석에는
//
만을 사용합니다. -
여러줄 주석
두 줄 이상의 주석을 작성할때는
/* */
를 사용합니다. -
주석의 들여쓰기는 주석과 관련된 코드와 일치 시킵니다.
단, 여러줄 주석의 경우 주석 기호를 기준으로 2개의 space를 사용합니다.
// 한줄 주석 /* 주석이 두개지요. */
-
///
를 사용해서 문서화에 사용되는 주석을 남깁니다.- 문서화에 사용되는 주석이란, option key를 누른 채로 해당 함수 또는 프로퍼티를 클릭했을 때 볼 수 있는 Summary의 내용입니다.
/// 사용자 프로필을 그려주는 뷰 class ProfileView: UIView { /// 사용자 닉네임을 그려주는 라벨 var nameLabel: UILabel! }
Pragma 사용에는 정답이 없습니다! 아래 가이드처럼 사용하다가 불편함이 발생한다면 알려주세요!
일반 주석이 단순한 형태로 정보를 전달한다면, Pragma 주석은 내 코드를 보는 다른 사람에게 반드시 전달해야한다고 판단되는 내용을 적습니다.
그렇기에 다른 사람이 Pragma 주석을 사용했는지 잘 확인해주세요.
Pragma 주석은 Xcode의 Navigation Selector와 함께 쓰면 더욱 편리합니다.
-
MARK
: 코드의 가독성을 위해 사용됩니다. 코드 파일에서 네비게이터의 역할을 합니다. -
TODO
: 해당 부분(라인)에 추가적으로 구현되야할 내용을 적습니다.// TODO: 붉은색 로직 구현 func touchRedButton() { }
-
FIXME
: 수정이 필요한 부분들을 적습니다.예를 들면, 다른 사람이 작업하는 부분에서 수정되어야하는 부분을 발견했을 때 사용할 수 있습니다.
// FIXME: 색상 변경 로직 수정 필요함 func touchRedButton() { backgroundColor = .black }
-
-
: 구분선을 생성합니다.MARK
의 경우, Xcode 에디터상에 구분선이 생성되고, 나머지의 경우 네비게이터에만 생성됩니다.따라서
MARK
에만 사용합니다. -
!!!
: 해당 프로젝트에서는 사용하지 않습니다. -
???
: 코드 상에 궁금한 점, 풀리지 않는 점을 작성합니다.// ???: 왜 작동되는지 모르겠음 func touchRedButton() { backgroundColor = .someColor }
-
// 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