[Swift] async / await 등장배경 에서 이어집니다. WWDC 2021 - Meet async / await in Swift 중, async / await 에 대한 소개를 기록한 글 입니다. [1] async / await 이제 async / await 을 사용한 버전을 살펴봅시다. function에 completionHandler를 넘겨주는 대신 function에 async를 표시해줬습니다. 아래 함수처럼 throws 앞에 async를 적어줘야합니다. (다른 위치에 적으면 function이 throws 되지 않는다고 합니다) async throws를 표시한 저 함수는 어떻게 동작할까요? - thumbnail이 성공적으로 받아와지면 thumbnail은 simply return 됩니다. - 하..
WWDC 2021 - Meet async / await in Swift 중, 등장배경만 기록한 글 입니다. ✏️ UIKit은 iOS 15부터 이미지 썸네일링을 할 수 있는 메소드들을 제공합니다. func preparingThumbnail(of: CGSize) -> UIImage? - synchronous한 방식 func prepareThumbnail(of: CGSize, completionHandler: (UIImage?) -> Void) - asynchronous 한 방식 이 썸네일 메소드를 예시로 하여 어떤 문제점이 있어서 async / await이 등장하게 되었는 지를 말씀해주십니다. # synchronous function 을 쓸 때 synchronous한 방식의 메소드를 쓰면 해당 쓰레드는 bl..
Array 문서 의 Removing Elements 부분을 보면 popLast는 있지만 popFirst가 없는 것을 볼 수 있습니다. popFirst를 검색해보면 두개가 나오는데, 첫번째 popFirst 는 ArraySlice에 있고 두번째 popFirst는 Collection에 있네요! 그래서 popFirst를 쓰고 싶으면 array에 바로 못쓰고 arraySlice에 써줘야합니다,,, 위의 한 줄을 풀어써보면 이렇게 되는데요, array의 range를 구해서 arrayslice를 만들어준 것입니다! 좀 불편하니까 extension을 만들어줄 수 있습니다. 그럼 이제 array에 바로 편하게 쓸 수 있습니다 [ 참고 ] 참고로 이렇게 extension 안만들고 그냥 여기 removeFirst 쓰면 되는..
if case문 쓸때마다 자주 헷갈려서 글을 남김 ✏️ 예제는 이 글 가져왔고 여기 if case 뿐만아니라 guard case, for case에 대한 설명도 있어요! enum Media { case book(title: String, author: String, year: Int) case movie(title: String, director: String, year: Int) case website(urlString: String) } let media = Media.movie(title: "Captain America: Civil War", director: "Russo Brothers", year: 2016) 위의 예제에서 media를 검사할때 예를들어 movie 타입인지만 확인하고 싶은 경우가..
[1] 전처리문이란전처리문(PREPROCESSOR STATEMENT)은 말그대로 컴파일 이전에 미리 처리되는 문장을 의미합니다. 전처리문은 #로 시작합니다. 종류도 여러가지가 있는데요, 상수(constant)를 정의하는 전처리문#define PI 3.14 파일을 포함시키는 전처리문#include 파일이름 참거짓을 판별해서 어떤 코드를 컴파일 할지말지 결정하는 전처리문 #if 조건문 source code.. #endif등등이 있습니다. 참고로 #define이랑 #include는 스위프트에서 못써요-!! 위의 예제는 C에서 주로 쓰이는 것 가져왔습니다. [2] Swift에서 전처리문을 쓴 경우 iOS 개발하다가 쓰는 경우는보통 release와 debug를 구분하거나 #if DEBUG print("DEBUG에..
https://www.test.com/users?gender=male&age=20&job=designer 위와 같은 get 요청에서 gender=male age=20 job=designer 같은 파라미터를 구하려면 어떻게 해야할까요?!? 저는 정규표현식을 이용했습니다. Swift에서 정규표현식(Regular Expression)을 이용하기 포스팅에 차마 이어쓰지 못하겠어서(😱) 새롭게 씁니다. 하지만 자세한 설명은 저기에 있습니다. 여기에는 간략하게! 결론 이렇게 extension을 추가하고 정규표현식 패턴으로 아래의 것을 쓰면 됩니다. [^&?]+=[^&?]+ 테스트를 돌리면 성공하는 것을 볼 수 있습니다. 과정 저렇게 테스트가 성공할 수 있는 과정을 살펴보겠습니다. 우선 [^?&] 이거 부터 살펴보자..
Date 연산을 구현할때, 까먹어서 구글링해서 찾아보고 구현하고... 이렇게 했는데 이제 이렇게 안하려고 SPM에 넣었습니다 :-) 제가 필요해서 구현했던 것을 공유합니다 :-) [1] 특정 Date에서 정보를 얻기 1. Date에서 Year, Month, Day를 구할때 > Date의 year, month, day 프로퍼티를 이용해주세요 2. Date에서 Month Name를 구할때 (ex. January, February, March) > Date의 monthName 프로퍼티를 이용해주세요 [2] 원하는 Date를 만들기 1. year, month, day, (hour, minute, seconds) 를 넣어서 Date를 만들때 DateHelper의 date 함수를 이용해주세요 2. 특정 Date에서..
enum의 rawValue, CaseIterable 같은 여러 속성들을 다 사용하고 싶었으나, 안되는 case들이 있어서 정리를 해본다 1) CaseIterable 과 연관값(associated value) 를 함께 사용할 수 없다 이렇게 allCases 라는 변수를 직접 선언해주어야지 Test.allCases 로 사용할 수 있다 Enum입장에서는(?) 연관값이 있으면 연관값에 따라 여러 케이스들이 있다는 것이라서 개발자가 연관값과 함께 케이스로 해줄 것들을 알려달라고 하는 것이 자연스러운 것 같다 : ) 2) rawValue와 연관값(associated value) 를 함께 사용할 수 없다 이렇게 따로 rawValue라는 변수를 만들어주는 수 밖에 없다 ㅠ.ㅠ
Swift5의 Result Type을 사용하면 비동기 API쪽 코드(데이터 받아와서 디코딩해주는..)를 간단하고 명확하게 만들 수 있다 [ 1 ] 그전에는.. 1) 옵셔널로 구분 func fetchModel(completion: @escaping (T?) -> Void) { let url = URL(string: "...")! URLSession.shared.dataTask(with: url) { data, response, error in guard let data = data else { return completion(nil) } guard let model = try? JSONDecoder().decode(T.self, from: data) else { return completion(nil) }..
- Total
- Today
- Yesterday
- flutter deep link
- flutter 앱 출시
- flutter build mode
- Dart Factory
- cocoapod
- METAL
- 플러터 싱글톤
- Watch App for iOS App vs Watch App
- Django Firebase Cloud Messaging
- ribs
- DRF APIException
- Flutter Spacer
- drf custom error
- PencilKit
- 플러터 얼럿
- Flutter getter setter
- Django Heroku Scheduler
- 장고 URL querystring
- Python Type Hint
- Flutter 로딩
- Django FCM
- github actions
- 구글 Geocoding API
- flutter dynamic link
- Flutter Text Gradient
- Flutter Clipboard
- SerializerMethodField
- Sketch 누끼
- 장고 Custom Management Command
- ipad multitasking
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |