지난 포스팅에 이어서 Swift 초기화에 대해 계속 정리-ing... 링크는 여기!! 지난 글에서는 Initialization이 어떤 것인지와 기본적인 형태, 사용자가 직접 설정할 수 있는 Custom Initializer에 대해 공부했다. Default Initializers swift에서는 init 메서드를 따로 만들지 않아도 기본적으로 제공하는 Default Initializer(기본 생성자)가 있다. init 메서드를 만들지 않고 인스턴스를 생성해주면 각 프로퍼티의 값은 프로퍼티에 초기화시켜둔 기본 값으로 정해진다. 기본 생성자를 사용하기 위한 조건으로는 두 가지가 있다. 모든 property가 default value를 가져야 한다 부모 클래스가 없어야 한다. (상속을 받지 않은 클래스, a b..
도대체 swift는 init이 왜 이렇게 많을까..? 종류별로 하나씩 기억하기가 어려워서 정리하는 포스팅..! 우선 문서 링크는 여기 Initialization 문서에 적힌 글을 살펴보면 Initialization은 class나 struct, enum 타입의 instance를 사용할 수 있도록 준비하는 프로세스라고 정의되어있다. Initialization에는 stored property나 새 인스턴스를 사용할 준비가 되기 전에 필요한 기타 다른 설정 또는 초기화를 수행하는 작업이 포함된다. Objective-C와 다르게 init 메서드는 return 값이 없다. class 유형의 인스턴스는 사용 이후에 소멸 전에 메모리로부터 직접 해제해야 하는 것들이 있는 경우 deinit을 사용해 해제 후 deinit..
매번 까먹고 매번 찾아보는 게 귀찮아서 정리하는 글입니다. UIView에 테두리를 넣어야 할 때가 생기는데, 이 때 코드로도 넣을 수 있고 스토리보드로도 넣을 수 있다. 우선 코드로 넣는 방법 부터 알아보자. 1. 코드로 Border 추가하기 간단하게 storyboard에서 UIView를 하나 추가해준 뒤에 ViewController에 outlet 연결을 해준다. import UIKit class ViewController: UIViewController { @IBOutlet weak var testView: UIView? override func viewDidLoad() { super.viewDidLoad() // 테두리 둥글게 testView?.layer.cornerRadius = 5 // 테두리 두..
작년에 처음 Clean Swift(VIP 패턴)을 접했을 때 비즈니스 로직을 쉽게 분리해서 테스트 코드를 짜기가 용이하다는 점이 마음에 들었다. MVC 패턴을 사용할 때는 Model에 들어갈 로직도 ViewController에 넣게 되고, 그러다보면 정말로 Massive View Controller가 되기 쉬웠는데 VIP 패턴으로 코드를 짜보니까 확실히 로직 분리를 의식적으로 할 수 있었다. Clean Swift (VIP Pattern) 1. VIP (ViewController, Interactor, Presenter) Clean Swift는 VIP Component들을 활용하기 때문에 VIP Pattern으로도 불린다. VIP는 각각 ViewController - 화면 업데이트 담당 Interactor..