본문 바로가기

iOS55

Meet AsyncSequence https://developer.apple.com/videos/play/wwdc2021/10058/ AsyncSequence 예시 코드 @main struct QuakesTool { static func main() async throws { let endpointURL = URL(string: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv")! // skip the header line and iterate each one // to extract the magnitude, time, latitude and longitude for try await event in endpointURL.lines.dropFirst() .. 2023. 2. 11.
Use async/await with URLSession https://developer.apple.com/videos/play/wwdc2021/10095/ 서버 통신을 통해 사진을 불러오는 기능을 async/await 와 URLSession을 사용해 구현해보자! 기존의 방식 (completion Handler) 문제점 스레드 문제가 발생 할 수 있다. (Data Race) 위의 코드에서 총 3번의 completionHandler를 호출부에서 오직 한 곳만 main queue에 dispatch 되고 있다. → 버그 발생 가능 에러 처리 또한 제대로 되어 있지 않다. Fetch Photo with async/await func fetchPhoto(url: URL) async throws -> UIImage { let (data, response) = try aw.. 2023. 2. 11.
Meet async/await in Swift https://developer.apple.com/videos/play/wwdc2021/10132/ Meet async/await in Swift - WWDC21 - Videos - Apple Developer Swift now supports asynchronous functions — a pattern commonly known as async/await. Discover how the new syntax can make your code... developer.apple.com Sync와 Async Synchronous 함수는 실행되면 해당 쓰레드를 블록하고 작업을 완전히 마치면 다음 작업(함수) 수행 Asynchronous 함수는 작업이 진행되고 있는 동안 해당 쓰레드가 다른 일을 할 수 있다. .. 2023. 2. 11.
Opaque Type Opaque Types - The Swift Programming Language (Swift 5.7)A function or method with an opaque return type hides its return value's type information. Instead of providing a concrete type as the function's return type, the return value is described in terms of the protocols it supports.https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.htmlUnderstanding the "some" and "any" keywords in Swi.. 2023. 2. 11.
FSCalendar 를 이용하여 캘린더 뷰 만들기 구현하고자 하는 뷰 구현 코드 // // testVC.swift // Korail-iOS // // Created by sejin on 2022/11/17. // import UIKit import FSCalendar class TestVC: UIViewController { // 현재 캘린더가 보여주고 있는 Page 트래킹 lazy var currentPage = calendarView.currentPage // 이전 달로 이동 버튼 private let prevButton = UIButton(type: .system).then { $0.setImage(UIImage(systemName: "chevron.left"), for: .normal) $0.tintColor = .black } // 다음 달로 .. 2023. 2. 11.
.grouped, .insetGrouped style tableView에서 위아래 여백 제거하기 생성일: 2022년 7월 3일 오전 1:28 UITableView(frame: .zero, style: .insetGrouped) 또는 UITableView(frame: .zero, style: .grouped) 처럼 style을 지정해준다면 테이블 뷰에 기본적으로 header, footer가 들어가서 원하는 크기의 테이블뷰가 생성되지 않는다. 문제 화면 보기 편하게 테이블 뷰의 backgroundColor를 .white로 주었다. 각 셀의 높이를 50, 셀의 개수 4개 ⇒ 총 높이 200 이기 때문에 TableView의 높이를 200으로 지정해주었다. 하지만 위의 사진처럼 위에 기본 헤더가 존재해서 원하는대로 UI가 구현되지 않고 아래의 cell이 잘려서 보이게 된다. 해결 방법 TableView의 H.. 2023. 2. 11.