본문 바로가기

iOS50

[swift] for - in과 forEach문에 대해 알아보자! 안냐세요 오늘은 for -in 문법과 forEach 문법에 대해 알아보고 차이점을 살펴볼게요! 고고 for-in과 forEach는 Swift에서 컬렉션을 순회(iterate)할 때 사용하는 대표적인 문법임!각각 장단점이 있음🔁 for-in 문법let numbers = [1, 2, 3, 4, 5]for number in numbers { print(number)}명령형 스타일임continue, break, return 사용 가능await와 함께 비동기(for-await-in) 처리 가능가독성이 좋고 범용적임 🔄 forEach 메서드let numbers = [1, 2, 3, 4, 5]numbers.forEach { number in print(number)}함수형 스타일임 (클로저를 파라미터로.. 2025. 4. 29.
[swift] 화면 전환 | push, present 화면 전환 방법push랑 present는 다른 방식으로 화면을 전환하는 두 가지 방식임사용하는 상황, 애니메이션, 뒷화면 유지 방식이 다름✅ push 방식 (navigationController 기반)스택 구조로 화면 쌓음 (ex: A → B → C → back 하면 C → B → A)내비게이션 바가 기본 제공됨뒤로 가기(back)가 자동으로 생김UINavigationController 안에서만 사용 가능let detailVC = DetailViewController()navigationController?.pushViewController(detailVC, animated: true)사용 예:목록에서 상세 보기설정 → 하위 설정 메뉴탭 내에서 단계적으로 들어가는 구조✅ present 방식 (모달)새로운.. 2025. 4. 19.
[iOS] ViewController의 생명주기 📱 UIViewController 생명주기(View Life Cycle) 간단 정리iOS에서 화면 하나하나는 UIViewController로 구성됨이 컨트롤러는 화면이 로드되고 보여지고 사라지는 일련의 과정 속에서특정 메서드들이 자동으로 호출됨 → 이를 뷰 컨트롤러 생명주기라고 함 🤓주요 메서드 요약메서드언제 호출?주로 하는 일viewDidLoad()뷰가 메모리에 올라올 때 (딱 1번)초기 UI 설정, 데이터 불러오기viewWillAppear(_:)화면이 보이기 직전화면 갱신, 네비바 설정 등viewDidAppear(_:)화면이 보인 직후애니메이션 실행, 로딩 종료 처리viewWillDisappear(_:)화면이 사라지기 직전저장 처리, 타이머 중지 등viewDidDisappear(_:)화면 완전히 .. 2025. 4. 18.
다크모드 / 라이트 모드 전환 및 적용하는 방법 | 벡터 이미지 적용하기 - 다크모드 라이트 모드 전환 및 적용하기 - 배경 이미지 모드 지정하기- 에셋 이미지 벡터 이미지 사용하기 : 벡터 이미지 사용하면 이미지 깨짐 없음! 2025. 3. 29.
iOS 개발 전에 정리하는 코드 스타일 가이드 📌 | 효율적인 협업과 유지보수를 위해... iOS 개발을 하면서 코드 스타일을 통일하는 것은 가독성을 높이고 유지보수를 쉽게 만드는 중요한 요소다.특히 협업 시 일관된 코드 스타일을 유지하면 리뷰 속도도 빨라지고, 기능 추가 및 수정이 수월해진다.이번 포스팅에서는 iOS 개발에서 지켜야 할 코드 스타일 가이드를 정리해보겠다 🚀 뭐든지 기초가 중요함...✨ 1. 코드 스타일 기본 규칙 1.1 들여쓰기 (Indentation)Xcode에서 기본 들여쓰기는 4인데, 2로 설정하면 더 깔끔하다.📌 설정 방법: Xcode > Settings > Text Editing > Indentation 에서 2로 변경 1.2 MARK 주석 스타일// MARK: - 형태로 작성: 이후 한 줄 개행관련 항목이 끝난 후 두 줄 개행// MARK: - User Mode.. 2025. 3. 24.
[Swift] Void에 대해 아라보자 🔹 Swift에서 Void란?Void는 반환값이 없는 함수의 반환 타입을 나타내는 키워드임.Swift에서는 Void는 사실 () (빈 튜플)과 동일함.🔹 1. Void의 사용 예시func sayHello() -> Void { print("Hello, Swift!")}위 함수에서 -> Void는 반환값이 없음을 의미함.하지만 Swift에서는 -> Void를 생략 가능하기 때문에 보통 이렇게 씀:func sayHello() { print("Hello, Swift!")}두 함수는 완전히 같은 의미임.🔹 2. Void와 ()의 관계Swift에서는 Void는 빈 튜플 ()의 타입 별칭임.즉, 다음 두 표현은 같은 의미임:typealias Void = ()그래서 다음과 같은 표현도 가능함:func .. 2025. 2. 24.
[흡95디] 내 코드 톺아보기 공부하기 - ViewController.swift 안녕하세요 이번주에는 기능 추가 구현에 집착하지 않고내 친구 지피티가 (많이) 도와준 내 코드 잘 이해하고 공부하기! import UIKit // UIKit 프레임워크 가져오기 (UI 관련 기능 제공)import NMapsMap // 네이버 지도(Naver Maps) SDK 가져오기class ViewController: UIViewController { // UIViewController를 상속받아 화면 컨트롤러(ViewController) 정의 // MARK: - Properties let markerManager = MarkerManager() // 마커를 관리하는 객체 생성 var popUpVC: PopUpView? // 팝업 뷰를 표시할 객체 (옵셔널) @IBOutle.. 2025. 2. 20.
[Swift] 이벤트 소비와 전파 이벤트 소비와 전파의 차이는 주로 이벤트 핸들러에서 true와 false 반환 값에 의해 결정됨.이벤트 소비 (Event Consuming):이벤트 핸들러에서 true를 반환하면 이벤트가 더 이상 전파되지 않고 소비되었음을 의미함. 즉, 이후 다른 핸들러나 처리 로직으로 이벤트가 전달되지 않음.예: marker2.touchHandler에서 true를 반환하면, 마커 2 터치 이벤트 이후 지도 터치 이벤트로 전파되지 않음.이벤트 전파 (Event Propagation):이벤트 핸들러에서 false를 반환하면 이벤트가 계속해서 전파되어 다른 핸들러나 처리 로직에서 처리될 수 있음.예: marker1.touchHandler에서 false를 반환하면, 마커 1 터치 이벤트가 처리된 후에도 mapView(_:di.. 2025. 2. 20.
[Swift] Firestore 데이터는 불러오는데 마커가 사라진다면? (해결 방법 정리) 🧐 문제 상황Firebase Firestore에서 흡연 구역 데이터를 가져와 리스트에 표시하는 기능을 추가했는데, 리스트는 정상적으로 출력되지만 지도에 마커가 사라지는 문제 발생!🔍 증상앱 실행 후 초기 화면에서 마커가 정상적으로 표시됨리스트 화면에서 데이터를 확인 후, 다시 지도로 돌아오면 모든 마커가 사라짐smokingAreas.count를 확인하니 데이터는 정상적으로 있음 (즉, Firestore에서 데이터는 정상적으로 가져옴)하지만 지도에는 마커가 표시되지 않음🏷 원인 분석📌 1. Firestore 데이터는 정상적으로 불러옴먼저 SmokingAreaData.shared.smokingAreas를 출력해보니, Firestore에서 가져온 데이터는 정상적으로 존재함. 즉, 데이터가 사라진 것이 .. 2025. 2. 18.