목록iOS/Swift 문법 (80)
大器晩成

우리는 이미 gurad문이나 if 문을 사용할 때, ", "를 자주 사용한다. 그러면 둘의 차이는 있을까? 아니면 없을까?참고 자료 중 Soojin Ro 블로그에 따르면 콤마는 codition을 이어 붙이는 용도로 쓰는 것이고 &&는 두 개의 Boolean expression 파라미터로 받는 논리 연산자이다. 쉽게 와닿는 부분은 아닌지만, Swift 공식 문서에 따르면 condition들을 condition list라고 지칭한다.condition에는 다음과 같은 항목이 포함된다.Expressionavaliablity - conditioncase-conditionoptional-binding-condition여기서 우리가 알 수 있는 건 "condition을 condition 또는 condition-lis..
싱글톤 패턴을 구현하다 보면 항상 클래스로만 구현하는데, 왜 구조체로는 구현을 안 하는 걸까?라는 의문을 가질 수 있고,그렇다면 구조체로 싱글톤 패턴을 구현을 못하는 것이냐라고 한다면, "No"입니다. 구조체로도 싱글톤 패턴을 구현할 수는 있습니다.그렇다면 왜 구조체로 사용하지 않고, 클래스로만 사용할까요? 싱글톤 패턴이란 클래스나 구조체의 단일 인스턴스만을 생성하고, 이를 전역적으로 공유하기 위해 사용되는 디자인 패턴입니다. (특정한 유일한 데이터/관리 객체가 필요한 경우 사용) -> 유일하게 1개만 존재하는 객체입니다. (단일 인스턴스)즉, 한 번 실행되면 앱이 종료할 때까지 1개의 객체로써 메모리에 상주합니다. class Monster { static let shared = Monste..
에러가 발생하는 경우, 에러를 따로 외부로 던지는 것이 아니라, 리턴 타입 자체를 Result 타입으로 구현해서 함수 실행의 성공과 실패의 정보를 담아서 반환합니다.enum ResultSuccess, Failure> where Failure : Error, Success : ~CopyableReuslt 타입은 열거형으로 구성되어있으며, sucess(연관값)와 failure(연관값)로 구분됩니다.enum PayslipError: Error { case tooMany case tooSmall}func getPayslip(money: Int) -> Result { if money >= 3_000_000 && money 에러 처리보다 깔끔하게 코드를 구성할 수 있습니다.get() 메서드..
제네릭 코드 (Generic code)는 정의한 요구사항에 따라 모든 타입에서 동작할 수 있는 유연하고 재사용 가능한 함수와 타입을 작성할 수 있습니다. 중복을 피하고 명확하고 추상적인 방식으로 의도를 표현하는 코드를 작성할 수 있습니다.제네릭은 Swift의 강력한 특징 중 하나이고 Swift 표준 라이브러리 대부분은 제네릭 코드로 되어 있습니다. 예를 들어 Swift의 Array와 Dictionary 타입은 둘 다 제네릭 컬렉션입니다. Int 값을 가진 배열, 또는 String 값을 가진 배열 또는 실제로 Swift에서 생성될 수 있는 다른 모든 타입에 대한 배열을 생성할 수 있습니다. 마찬가지로 모든 지정된 타입의 값을 저장하기 위한 딕셔너리를 생성할 수 있고 해당 타입에 대한 제한은 없습니다Appl..