전체 글 30

override init vs required init 초기화 차이

인스턴스 초기화 시점과 방식을 책임지는 생성자(Initializer) ✅ override init슈퍼클래스에서 “이렇게 초기화하세요”라고 지정해둔 지정 생성자(Designated Initializer) 를 재정의(override)코드로 뷰나 셀을 만들 때, 스토리보드·XIB가 아니라 init(frame:)(컬렉션뷰 셀) 또는 init(style:reuseIdentifier:)(테이블뷰 셀) 로 호출class MyCell: UICollectionViewCell { override init(frame: CGRect) { super.init(frame: frame) // 슈퍼 초기화 필수 호출 setupUI() // 이후 커스텀 UI 설정 ..

iOS 2025.05.21

[iOS] SnapKit과 AutoLayout

✅ SnapKit이란?SnapKit은 iOS에서 오토레이아웃을 코드로 작성할 수 있게 도와주는 프레임워크기존의 NSLayoutConstraint보다 훨씬 간결하고 직관적으로 레이아웃을 구성// Auto Layout 코드 (기본 방식)NSLayoutConstraint.activate([ label.topAnchor.constraint(equalTo: view.topAnchor, constant: 20), label.centerXAnchor.constraint(equalTo: view.centerXAnchor)])// SnapKit 방식label.snp.makeConstraints { make in make.top.equalToSuperview().offset(20) make.cente..

iOS 2025.05.20

[Swift]Optional을 사용하는 이유

✅ 옵셔널이란?옵셔널(Optional)은 값이 있을 수도 있고 없을 수도 있는 데이터 타입내부적으로는 .some(value)와 .none(nil)을 갖는 열거형(enum) 구조enum Optional { case none // 값 없음 (nil) case some(Wrapped) // 값 있음} ✅ Optional을 사용하는 이유값이 없을 수 있는 상황(사용자 입력, 네트워크 응답)을 타입으로 명확하게 표현할 수 있음컴파일 타임에 언래핑을 강제함으로써 실수를 미리 방지if let, guard let, ??, 옵셔널 체이닝 등 다양한 문법을 통해 안전하고 간결한 코드 작성 값이 없다는 상태를 단순히 "", 0, false와 구분해 진짜 "존재하지 않음(nil)" 상태로 표현..

Swift 2025.05.19