분류 전체보기

Swift

[iOS] Swift Deinitialization 알아보기

앞에서 Initialization을 알아봤으니 이번엔 Deinitialization을 공부해야겠다. Deinitialization. 앞에 De가 붙은 것에서 유추할 수 있듯이 Initialization의 반대 개념이다. 인스턴스가 메모리에서 해제될 때 호출되는 친구인데, 키워드는 deinit을 사용한다. 하지만 Init과 다르게 deinit은 클래스에서만 사용할 수 있다. How Deinitialization Works Swift에서는 인스턴스 메모리 관리를 ARC(Automatic Reference Counting)를 체크해서 하기 때문에 인스턴스가 더이상 필요하지 않다고 판단될 때 자동으로 deallocate 된다. 자동으로 해결되는데 도대체 왜 Deinit이 필요한가? 요거는 내가 인스턴스 소멸 전..

Swift

[iOS] Swift initialization 알아보기 (4) - Failable Init

드디어 initialization 문서의 마지막을 정리하는 포스팅이다. 이번 포스팅에서는 Faliable Initializer, Required Initializer를 정리한다! Failable Initializers 클래스나 구조체, enum은 유효하지 않은 파라미터가 들어오는 경우 초기화에 실패할 수도 있다. 실패할만한 조건이 들어올 때 초기화를 하지 않도록 하기 위해서는 init? 키워드를 사용해서 초기화 메서드를 작성한다. 대신 같은 파라메터와 이름을 가진 failable / nonfailable 초기화 메서드는 함께할 수 없다고 한다. (아래와 같은 에러가 난다) 위에 작성한 failable init 메서드를 보면 알 수 있듯이 초기화에 필요한 조건을 만족하지 않는 경우는 nil을 리턴 시키면 ..

Swift

[iOS] Swift initialization 알아보기 (3) - Designated Init, Convenience Init

지난 포스팅에서 값 타입(Structure)의 initializer까지 공부했다. 이번 포스팅에서는 Class의 initializer에 대해 공부해 보자. (Class 부분이 너무 길어서 Init 정리 글은 총 네 편 정도 될 것 같다..) Class Inheritance and Initialization 모든 클래스들의 property들은 초기화 과정에서 반드시 초기 값이 할당되어야 한다. (상속 받은 클래스가 있는 경우는 상위 클래스들의 property도 모두 초기 값이 할당되어야 한다.) swift에서는 모든 클래스의 init이 보장될 수 있도록 두 가지 초기화 메서드를 제공하는데, 그것이 바로 'Designated Initializer'와 'Convenience Initializer'이다. (1)..

Swift

[iOS] Swift initialization 알아보기 (2) - 기본 생성자

지난 포스팅에 이어서 Swift 초기화에 대해 계속 정리-ing... 링크는 여기!! 지난 글에서는 Initialization이 어떤 것인지와 기본적인 형태, 사용자가 직접 설정할 수 있는 Custom Initializer에 대해 공부했다. Default Initializers swift에서는 init 메서드를 따로 만들지 않아도 기본적으로 제공하는 Default Initializer(기본 생성자)가 있다. init 메서드를 만들지 않고 인스턴스를 생성해주면 각 프로퍼티의 값은 프로퍼티에 초기화시켜둔 기본 값으로 정해진다. 기본 생성자를 사용하기 위한 조건으로는 두 가지가 있다. 모든 property가 default value를 가져야 한다 부모 클래스가 없어야 한다. (상속을 받지 않은 클래스, a b..

eunjuicy
'분류 전체보기' 카테고리의 글 목록 (17 Page)