파싱을 하기 위해서 만들어진 아주 아름다운 녀석입니다. Mirror를 이용하여 값을 가져와서 자동으로 매핑하도록 하게 되어있죠. 굿... 하지만 기존까지는 CodingKey를 이용하여서 snake를 camel로 변경하여서 개발을 하였던 적이 있었습니다. 나온지는 오래되었지만 아직 모르는 분들이 많아서 해당 부분을 정리하려고 합니다. 1. useDefaultKeys : 기본적인 동작 방법입니다. 2. convertFromSnakeCase : 만약 키가 스네이크로 되어 있으면 카멜로 변경하여서 매핑하여 줍니다. 3. custom([CodingKey]) -> CodingKey) : 사용자 지정하는 방법으로 가능하게 합니다. 1번과 2번은 그냥 정의 해주면 되는데 custom은 정리를 하여야 합니다. 사용방법은..
거의 모든 상황에서 뷰를 만들때 재사용을 할 수 있도록 만듭니다. 왜냐면 디자인의 버튼을 예를 든다면 거의 비슷한 버튼이 나오죠... 그래서 CustomView를 하는 방법을 알아보도록 합시다. 저는 UIViewController에 이런걸 넣고 싶어요 그렇죠 My Name is DH 부분의 파란 배경까지가 CustomView 입니다. 사용할 File은 대략 이렇게 3개에요. 자 그럼 하나씩 봅시다. 1. CustomView import UIKit extension UIView { func loadView(nibName: String) -> UIView? { let bundle = Bundle(for: type(of: self)) let nib = UINib(nibName: nibName, bundle: ..
일단 저는 xcode를 항상 최신 버전으로 사용을 합니다. 하지만 회사에서 일을 하는데 디펜던시가 너무 많아서 이것을 충족하기 위해서는 xcode 버전을 이전 버전으로 이용하여야 하는 문제가 발생하였는데요. 그래서 이번에 xcode를 이전 버전을 받게 되면서 블로그를 정리하게 되었습니다. 여러개 설치하기 일단 많은 블로그들이 xcode의 이름을 꼭 바꾸어야 하는것처럼 이야기를 합니다. 그렇지 않습니다. 하고 싶으신 분들만 하면 됩니다. 아래의 2번은 생략하셔도 됩니다. 만약에 버전들을 관리하고 싶다면 그렇게 하면 되는데요. 일단 방법은 다음과 같습니다. 1. xcode 종료. ( 사용중이 아니면 말고요 ) 2. Finder > (즐겨찾기) 응용 프로그램 > xcode를 찾아서 이름을 바꿉니다. 3. 다운..
URL은 웬만하면 영어와 숫자와 언더바정도로 이루어지게 됩니다. 그런데 한글이나 특수문자를 넣어주는 사람들이 있는데요. 그래서 이런 사람들을 방어해주어야 합니다. * 인코딩 할때 let original = "http://www.daum.net?query=한글" guard let target = original.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else { // 인코딩중 에러가 발생함 return } guard let url = URL(string: target) else { // URL로 만들다가 에러가 발생함 return } // url을 가지고 request code는 여러분의 것. * 디코딩 할때 guard let tar..
사전적인 의미로는 특성이라는 것으로 정의가 되어 있는데요. 쉽게 Rx의 흐름을 방출시킬수 있는 방법을 정의 하는 부분입니다. 가볍게 봐주셔도 됩니다. 거의 모든 분들은 그냥 Observable.create를 사용하여도 간단하게 만들수 있습니다. 1. Single 항상 단일 요소 또는 오류를 방출합니다. 즉, 하나의 흐름이 지나가면 끝나버립니다. func getRequest(url: String?) -> Single { return Single.create { single in guard let url = url else { single(.error(NSError.init(domain: "error", code: -1, userInfo: nil))) return Disposables.create() } i..
- Total
- Today
- Yesterday
- cocoapods
- windows10
- Spring
- Codable
- Python
- nodejs
- git
- Kotlin
- github
- MySQL
- Windows
- Gradle
- golang
- SWIFT
- ios
- war
- CentOS
- centos8
- rxswift
- Xcode
- intellij
- tomcat
- php
- docker
- Linux
- ubuntu
- go
- Java
- android
- enum
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |