일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- HIG
- 리펙터링
- uiscrollview
- combine
- Protocol
- swift documentation
- 리팩토링
- MVVM
- ios
- UITextView
- clean architecture
- tableView
- Observable
- 리펙토링
- 애니메이션
- collectionview
- rxswift
- 스위프트
- swiftUI
- 클린 코드
- uitableview
- UICollectionView
- Clean Code
- ribs
- Human interface guide
- SWIFT
- Xcode
- map
- Refactoring
- RxCocoa
- Today
- Total
목록Codable (6)
김종권의 iOS 앱 개발 알아가기
url 파싱 아래와 같은 url이 있을 때, a1_b, a2같은 값을 파싱하는 방법? "abc://host?a1_b=1&a2=2" 보통 Swift의 Codable을 사용하여 API의 응답값들을 미리 struct로 정의하여 표현하는데 url 파싱도 이렇게 처리가 가능 // Codable을 사용한 API 응답 파싱 예시 struct SomeResponse: Codable { let age: Int let name: String } 구현 목적 딥링크를 구현하다보면 여러 url을 처리해야하는데, API의 응닶값처럼 url도 Codable을 준수하는 struct모델을 만들어서 정의되도록 구현하는 것이 목적 ex) 아래와 같은 url이 있을 때, parameter 2개에 대한 모델을 따로 정의하고 싶은 경우? le..
* 기본적인 Codable, Decode, Encode 개념은 이곳 참고 * 관련 포스팅 글 json, codable, nestedContainer(keyedBy:forKey:), Decoding 중첩 모델 처리 방법 (디코딩) json, codable, nestedContainer(keyedBy:forKey:), Encoding 중첩 모델 처리 방법 (인코딩) json, codable, nestedContainer(keyedBy:forKey:), KeyedCodable로 중첩 모델 처리 방법 중첩 모델을 flatten 모델로 정의 방법 { "user_id": "jake", "blog_info": { "name": { "first": "iOS 앱 개발 알아가기", "second": "SwiftUI 앱 개..
필수 개념, Data 형 메모리 안의 바이트가 저장될 수 있는 `바이트 버퍼` `바이트 버퍼`: 운영체제의 커널이 관리하는 시스템 메모리를 직접 사용할 수 있기 때문에 데이터의 저장, 로드가 가능 swift는 URLSession으로 dataTask를 만들어, 네트워크 호출을 하면 응답으로 Data형을 받는데, 이는 저장, 로드, 변환이 쉽기 때문에 Data로 받는 것 자주 사용되는 것은 json데이터를 struct형으로 변경하거나, 반대로 struct형에서 json으로 변경할 때 먼저 `Data`형으로 변경한 다음 원하는 데이터형으로 변경하여 사용 ex) UserDefaults에 struct 자료형을 Encoder, Decoder를 이용하여 저장하는 방법: https://ios-development.ti..
아래와 같은 json을 파싱할 때, carTypeCode를 파싱하여 swift에서 구별할 수 있는 방법? { "responseCode":0, "message":"COMMON_OK", "result":[ { "carTypeCode":"CTCD00001", "carName":"model x", "carCompany":"tesla" }, { "carTypeCode":"CTCD00002", "carName":"morning", "carCompany":"kia" } ] } 일반적인 carTypeCode // MARK: - CarResponse struct CarResponse: Codable { let responseCode: Int let message: String let result: [carResult] ..
Codable이란? Encodable + Decodable 두 속성 모두 가지고 있는 타입 Encodable: 스위프트의 struct구조의 "객체"를 "json형식"으로 변한 하는 것 (Binary Data로 변환) Decodable: "json형식"을 "객체"로 변환 필요한 이유: 서버와 통신할 경우, 객체 그대로를 보내지 / 받지 않고, Binary Data로 통신 Encode swift의 struct객체 -> Binary Data (json형) struct정의 struct Person: Codable { var name: String var age: Int var birthDate: Date } Encode_ Binary데이터 변환 // create let person = Person(name: "..
codable을 사용하여 json데이터를 가져오는 것 json자료형을 직접 파싱해서 사용하는 것은 코드상의 복잡함이 따름 -> 미리 struct형을 정해놓고 거기에 매핑되게끔하는 방법 case #1. 일반적인 사용방법 // json데이터 형태를 미리 정의 struct DataForm: Codable { var key_name1: String? var key_name2: String? } // json데이터 let sample = """ { "key_name1": "value1", "key_name2": "value2" } """.data(using: .utf8)! // 결과 let result = try! JSONDecoder().decode(DataForm.self, from: sample) print..