여기 Parent를 상속하는 Child 클래스가 있다.Parent 타입의 Child 인스턴스 생성 후 method 호출 시, 어떤 함수를 호출할까?이때 어떤 함수를 호출할지 결정하는 매커니즘이 method dispatch이다.먼저 알아야 할 것컴파일 타임 vs 런타임
Swift의 에러는 Error 프로토콜을 준수하는 타입의 값으로 나타냄.이 프로토콜로 우리는 에러를 처리하는 데 사용할 수 있다! 라고 알림.커스텀 에러를 정의하고 싶다면 Error 프로토콜 채택 필요예시를 통해 throw, try, do-catch를 이해해 보자.사용
인수로 전달된 클로저가 함수가 종료된 후 실행되는 클로저탈출을 허락한다는 의미로 파라미터 타입 앞에 @escaping 키워드 작성클로저를 저장할 배열 closures ,closures 에 클로저를 추가할 메서드 addClosure 를 구현했다.addClosure 을 통
클래스나 구조체 안의 변수나 상수를 흔히 프로퍼티라고 칭함.저장 프로퍼티말 그대로 값을 저장연산 프로퍼티값을 저장하지 않고 계산타입 프로퍼티저장 프로퍼티, 계산 프로퍼티는 특정 타입의 인스턴스와 연결되지만, 타입 자체와 연결되는 타입 프로퍼티도 존재함값을 저장하고 있는
클래스, 구조체, 열거형 안에 구현되는 함수를 메서드라고 함.인스턴스 메서드타입 메서드2가지가 존재한다.특정 클래스, 구조체, 열거형의 인스턴스에 속하는 함수인스턴스 메서드는 자신이 속한 타입의 인스턴스에서만 호출될 수 있음프로퍼티와 동일하게 점 구문으로 인스턴스 메서
여러 프로퍼티와 메서드를 담아 이를 묶어 하나의 사용자 정의 데이터 타입으로 만든 것구조체와 클래스는 비슷하면서도 차이가 있음. 클래스는 구조체에 여러가지 필요한 기능을 플러스 알파한 것.구조체의 정의는 struct 키워드로앞서 말했던 것처럼 하나의 구조체는 결국 사용
구조체와 클래스의 차이점 중 가장 큰 부분 중 하나가 바로 상속쉽게 이야기하면, 다른 클래스의 성질을 이어받는 것정확히는 기존 클래스를 기반으로 기능을 추가하거나 재정의하여 새로운 클래스를 만드는 것📌 헷갈리는 용어 정리기존 클래스(상속되는 클래스) = 상위 클래스
@State, @StateObject, @AppStorage… 등 SwiftUI를 공부했다면 익숙할 듯위에 언급된 애들은 전부 property wrapper요 글에선 얘네가 정확히 뭐고, 어떤 역할을 하는지에 대해 알아보려고 한다.일단 이름 그대로 프로퍼티를 감싸는 것
Group code that executes together, without creating a named function.이름 없이 생성되어 함께 실행되는 코드 블럭일정 기능을 하는 코드를 하나의 블럭으로 모아놓은 그룹Swift는 명확함과 의도를 잃지 않고 보여줌과
클로저는 정의된 둘러싸인 컨텍스트에서 상수와 변수를 캡처 (capture)할 수 있습니다. 그러면 클로저는 상수와 변수를 정의한 원래 범위가 더이상 존재하지 않더라도 본문 내에서 해당 상수와 변수의 값을 참조하고 수정할 수 있습니다.Swift document: Clos
프로토콜은 메서드, 프로퍼티, 특정 작업이나 기능의 청사진을 의미한다. 청사진(靑寫眞) 또는 블루프린트는 아키텍처 또는 공학 설계를 문서화한 기술 도면을 인화로 복사하거나 복사한 도면을 말한다. 은유적으로 "청사진"이라는 용어는 어떠한 자세한 계획을 일컫는 데에 쓰인다
우리가 collection의 요소에 접근하려 할 때 사용하는 subscriptex. arrindex로 array의 요소에 접근하기, dickey로 dic의 요소에 접근하기이런 subscript를 직접 만들어사용자 타입의 인스턴스의 요소에 접근할 수 있도록 할 수 있다!
타입의 저장된 프로퍼티에 초기값을 세팅초기화 구문을 정의하여 초기화 구현처음 사용되기 전에 타입의 새로운 인스터스가 올바르게 초기화되는 것을 보장하는 것이 주요 역할<1편에서 알아볼 것>기본적인 초기화 개념Value type의 initializer delegati
1편과 이어집니당<2편에서 알아볼 것>클래스에서의 초기화클래스의 초기화 프로세스실패 가능한 초기화 구문필수 초기화 구문저장 프로퍼티에 초기값을 할당하는 클래스의 2가지 초기화 구문designated initializer(지정 초기화 구문)convenience in
초기화 해제 구문은 클래스 타입에서만 사용 가능Swift는 클래스 인스턴스가 더이상 필요하지 않을 때 자동으로 할당 해제Swift는 ARC를 사용하여 메모리를 관리하기 때문에, 일반적으로 우리가 직접 구현해서 수행할 필요는 없음.하지만 deinit 시, 해야 할 작업이
함수 파라미터는 기본적으로 상수이다.함수 본문 내에서 파라미터 값을 변경하려고 하면 에러 발생따라서 함수 파라미터 값을 변경하고, 함수 호출이 종료된 후에도 그 값을 유지하고 싶다면 inout 파라미터를 사용해 보자.파라미터 타입 전에 inout 키워드를 작성해 준다.