.self란
Swift .self 완벽 가이드: 타입과 인스턴스를 값으로 다루기 소개 Swift에서 타입이나 인스턴스를 값으로 사용해야 하는 상황이 있습니다. 이때 .self 표현을 사용하여 타입 자체나 인스턴스 자체를 값으로 전달할 수 있습니다. 이 글에서는 .self의 정확한 사용법과 실제 활용 예시를 알아보겠습니다. 1. 타입을 값으로 사용할 때 (메타...
Swift .self 완벽 가이드: 타입과 인스턴스를 값으로 다루기 소개 Swift에서 타입이나 인스턴스를 값으로 사용해야 하는 상황이 있습니다. 이때 .self 표현을 사용하여 타입 자체나 인스턴스 자체를 값으로 전달할 수 있습니다. 이 글에서는 .self의 정확한 사용법과 실제 활용 예시를 알아보겠습니다. 1. 타입을 값으로 사용할 때 (메타...
앱의 특정 URL을 통해 실행될 수 있도록 하는 기능 웹 페이지, 다른 앱에서 URL을 호출하면 해당 URL을 처리할 수 있는 앱이 자동으로 열림. 1. 앱 스키마 구조 myapp://auth/callback?success=true myapp:// : 앱에서 설정한 Custom URL Scheme auth/callback : 특정 ...
애플의 인증 관련 프레임워크 OAuth 2.0, Sign in with Apple, 패스키 등 인증 관련 기능을 제공 ASWebAuthenticationSession이 포함되어 있음. ASWebAuthenticationSession 앱 내에서 OAuth 인증을 수행하는 클래스 웹브라우저 기반으로 로그인 처리 로그인 후 앱으...
1. 문제 발생 상황 present(_:animated:completion:) 메서드를 호출했을 때 “Cannot find ‘present’ in scope” 오류가 발생함. 2. 원인 분석 2.1 present는 UIViewController의 인스턴스 메서드 present 메서드는 UIViewController 내부에서만 호출 가능함....
중첩 배열을 한 배열로 평평하게 만들거나, 옵셔널 배열을 변환 1. 중첩 배열을 평탄화 let nestedArray = [[1, 2, 3], [4, 5], [6, 7, 8]] let flatArray = nestedArray.flatMap { $0 } print(flatArray) // 출력: [1, 2, 3, 4, 5, 6, 7, 8]
CAShapeLayer는 벡터 기반의 경로(path)를 그릴 수 있는 CALayer의 서브클래스이다. Core Graphics (CGPath)를 사용하여 선, 도형, 곡선 등을 그릴 수 있음 애니메이션을 추가하여 동적으로 변화하는 UI를 만들기 용이 비트맵(UIImageView)보다 성능이 뛰어나며, GPU를 활용하여 렌더링 성능이 우수...
nil인지 먼저 확인하고 nil이면 return하거나 다른 동작을 수행하는 방식 1. 옵셔널 바인딩 func greet(name: String?) { guard let unwrappedName = name else { print("이름이 없습니다.") return } print("안녕하세요, \(u...
배열의 요소 중 특정 조건을 만족하는 요소만 걸러서 새로운 배열을 생성하는 메서드 1. 짝수만 필터링하기 let numbers = [1,2,3,4,5,6,7] let evenNumbers = numbers.filter { $0 % 2 == 0 } 2. 특정 문자열이 포함된 요소만 필터링하기 let fruits = ["apple", "ban...
스토리보드로 인해 의도치 않게 뷰 컨트롤러가 초기화되는 문제 1. 문제 상황 로그인 상태에 따라 LoginViewController 또는 MainViewController를 rootViewController로 설정하는 코드가 있음. 그러나 로그인 상태가 false일 때도 MainViewController가 초기화되었다가 해제되는 문제가 발생함. ...
viewDidLayoutSubviews는 iOS의 UIViewController 생명주기 메서드 중 하나로, 뷰의 서브뷰들이 레이아웃된 직후 호출된다. 주로 레이아웃 조정이 필요한 작업을 이 시점에 처리한다. 정의 override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() ...