일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- async
- decode
- 100 days of SwiftUI
- 운영체제
- forEach
- 상호배제
- IOS
- 오브젝트
- 동시성
- @state
- 프로세스 스케줄링
- Apple Developer Academy
- COLOR
- Linked List
- Algorithm
- 데드락
- 비동기
- UserDefaults
- SwiftUI
- deadlock
- struct
- 앨런
- 동기화
- 가상 메모리
- core data
- 파일 시스템
- 인프런
- 알고리즘
- Codable
- Swift
- Today
- Total
목록async (4)
기어가더라도 제대로
1. 비동기 처리를 위한 Completion Handler 비동기 처리를 위해서 Completion handler를 많이 사용 문제점 비동기 작업이 실패하더라도 이 함수의 호출자(Caller)는 결과를 마냥 기다림 guard else { return } 을 사용하면 completion 에 담지 않아도 되는 경우가 생김 에러 핸들링을 강제할 수가 없다는 게 문제 func fetchThumbnail(for id: String, completion: @escaping (UIImage?, Error?) -> Void) { let request = thumbnailURLRequest(for: id) let task = URLSession.shared.dataTask(with: request) { data, res..
Operation struct SlowDivideOperation { let name: String let a: Double let b: Double let sleepDuration: UInt64 func execute() async -> Double { do { // Sleep for x seconds try await Task.sleep(nanoseconds: sleepDuration * 1_000_000_000) let value = a / b return value } catch { return 0.0 } } } let operations = [ SlowDivideOperation(name: "operation-0", a: 5, b: 1, sleepDuration: 5), SlowDivideOpe..
iTunes API 를 이용해서 데이터를 받아올 겁니다. 기반 사항은 이렇습니다. 리스트로 뿌려주는 간단한 코드 struct Response: Codable { var results: [Result] } struct Result: Codable { var trackId: Int var trackName: String var collectionName: String } struct MusicView: View { @State private var results = [Result]() var body: some View { List(results, id: \.trackId) { result in VStack(alignment: .leading) { Text(result.trackName) .font(.hea..