본문 바로가기

iOS/Swift72

Swift) Singleton Singleton 싱글톤은 특정 클래스의 인스턴스가 단 하나임을 보장하는 객체를 말한다. 싱글톤은 애플리케이션이 몇번을 요청하든 이미 생성된 동일한 인스턴스를 반환한다. 프로그램 전체에 단 하나의 전역 인스턴스를 만들어놓고, 어디서든 이 하나의 인스턴스만 접근, 사용할 수 있게 하면 된다. class SingleTonExample { static let shared = SingleTonExample() var testNumber: Int = 0 private init() { } // 객체 생성, 초기화 막음 } let test = SingleTonExample.shared test.testNumber = 10 // reference type (class) print(SingleTonExample.shar.. 2022. 2. 12.
Swift) KVO(Key-Value-Observing) KVO? (옵셔널 아님ㅋ) 다른 객체의 프로퍼티 변경사항을 객체에 알리기 위한 코코아 프로그래밍 패턴이다. NSObject를 상속받아야 사용할 수 있기때문에 상속이 되는 Class에서만 사용이 가능하다. observer와 observed는 일대일 관계, 일대다 관계가 가능하다. 모델과 뷰같은 논리적으로 분리된 관계간에 변경사항을 전달할 때 유용하다. Objective-C 런타임에 의존하는 방식이다. 그래서 clean swift 코드엔 지양한다. 타입 정의 밖에 observer를 추가하는 것 뺴곤 property observer(willSet, didSet)과 비슷하다. class Address: NSObject { var town: String { willSet { print(newValue) } did.. 2022. 2. 12.
일반화, 추상화, 캡슐화, 은닉화, 암호화 일반화 서로 다른 개체들로부터 공통된 개념을 추출하는 것 추상화 개체들로부터 필요한(중요한) 정보, 포인트만을 추려내는 것 캡슐화 실제로 구현되는 부분을 외부에 드러나지 않도록 캡슐(Struct, Class)로 감싸 이용방법만 사용자(외부 코드)에게 알려주는 것 은닉화 내부 데이터, 내부 연산, 기능들을 외부에서 접근치 못하도록 숨기는 것 (접근제어자) 암호화 암호화 알고리즘으로 값을 조작하여 본래 값을 알아볼 수 없도록 하는 것, 데이터를 알아보기 위해 복호화가 필요 정리 내부 부품(프로퍼티)이나, 기능(메소드)을 특정 기계(타입)으로 한번 감쌈으로써(캡슐화), 기본적으로 캡슐화와 은닉화가 함께 진행되는 줄 알았지만, 내부 부품, 기능들에 대한 외부 조작, 간섭을 방지하기 위해 내부 부품, 기능들에 추.. 2022. 2. 12.
Swift) return에 대한 의문 의문점 여지껏 함수내부에 return이 어느 위치에 있든 쓰기만 하면 함수를 탈출하는 흐름제어구문(Control Transfer Statements)인줄 알았다. 흐름제어구문(Control Transfer Statements)은 맞다. 근데 공식문서를 확인해보니 이렇게 써있더라 When a return statement isn’t followed by an expression, it can be used only to return from a function or method that doesn’t return a value (that is, when the return type of the function or method is Void or ()). 그냥.. 반환할 것이 없는 함수엔 return만을 .. 2022. 2. 12.
Swift) Switch vs If else 🍎 switch란? switch는 들어오는 수(value to consider)를 보고 조건이 True인 case로 진입(점프)한다. 다른 언어같은 경우엔 각 case마다 break를 걸어 탈출하지 않는다면, 이후의 case까지 진입하지만, Swift에서의 switch는 fallthrough를 기본적으로 지원하지 않으므로, case마다 break를 걸어줄 필요가 없다. switch statements in Swift don’t fall through the bottom of each case and into the next one by default https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID130 대신 fallthrough 되.. 2022. 2. 12.
Swift) Error Handling 📌 Error Handling Swift는 Error protocol을 통해 Error handling을 지원한다. 😈 Ways to handle Errors 스위프트의 에러처리 방법은 네가지가 있다. Error 발생 함수에서 해당 함수를 호출한 코드로 전파(던짐) (thorws) do-catch문으로 처리 Error를 옵셔널값으로 처리 Error가 일어나지 않을 것이라고 단정 👿 Error Represent Swift에서, Error는 Error protocol을 준수하는 타입의 값으로 표현한다. 👹 Error Protocol은 빈 프로토콜이다. Any type that declares conformance to the Error protocol can be used to represent an err.. 2022. 2. 12.