Swift28 Codable, CodingKey Codable과 CodingKey는 데이터 직렬화와 역직렬화를 간소화하는 도구이다. 여기서 직렬화(Serialization)란, 객체의 상태나 데이터 구조를 저장, 전송 가능한 형식(예: JSON, XML)으로 변환하는 과정을 말하고, 역직렬화는 그 역을 말한다. Codable Codable은 Swift의 표준 라이브러리에서 제공하는 프로토콜로, Encodable과 Decodable 를 모두 충족하는 타입을 말한다. Encodable은 Swift 객체를 외부 표현(e.g. JSON)으로 변환할 수 있게 해주며, Decodable은 외부 표현을 Swift 객체로 변환할 수 있게 해준다. 이들을 활용해서, 복잡한 데이터 변환 작업을 간단하게 처리할 수 있다. 인코딩 예시: import Foundation s.. 2024. 3. 13. 오류 처리 Error: 오류를 표현하기 위한 기본 프로토콜. Error 프로토콜을 채택하는 것 만으로도 해당 타입을 오류로 사용할 수 있게 된다. enum을 사용하는것이 일반적 enum DataParsingError: Error { case invalidData case missingRequiredField(String) case dataCorrupted } missingRequiredField옆의 (string)은 연관 값(Associated Values)으로, 열거형의 각 케이스에 추가적인 정보를 저장할 수 있게 한다. struct ParsedData { var name: String } func parseData(from dictionary: [String: Any]) throws -> ParsedData {.. 2024. 3. 10. [RxGesture] 컨테이너 뷰와 내부 요소의 제스처 구분하기 모달창의 외부를 터치했을 때, 모달창이 닫히는 기능을 구현하려고 한다. 모달창의 외부 뷰(self.view)와 모달창의 제스처를 같이 구독해야 하는데 처음 접근했을 때, 모달창 내부의 요소를 탭해도 self.view가 탭된 것으로 간주되어 모달창이 닫히는 문제가 발생했다. class SearchPlaceViewController: UIViewController { let disposeBag = DisposeBag() @IBOutlet var modalContainerView: UIView! @IBOutlet var searchTextField: UITextField! @IBOutlet var seachResultTableView: UITableView! override func viewDidLoad() .. 2024. 3. 2. @escaping 1. 탈출 클로저 함수의 인자로 전달된 클로저가 함수가 종료된 뒤 실행되는 것. 주로 비동기 작업이나 콜백 함수로 사용한다. https://jdeoks.tistory.com/28 클로저 (Closures) 1. 클로저 일급 객체로서, 함수처럼 기능을 수행하는 블록. named closure(func 키워드를 사용하는 일반적인 함수), unnamed closure(익명함수) 두 가지 종류가 있음 다음과 같은 구조를 가진다. { (파라미터 jdeoks.tistory.com 기본적으로 클로저는 함수 내부 스코프 안에서만 사용이 가능한 비탈출 클로저로, 다음과 같은 특성을 가지고 있다. 2. 비탈출 클로저: - 함수 내부에서 직접 실행하기 위해서만 사용 - 외부 변수/상수에 저장하거나 반환할 수 없음 3. @e.. 2023. 10. 19. 이전 1 2 3 4 ··· 7 다음