본문 바로가기

swift33

CollectionView MultipleSelection 영상처럼 cell을 여러개 선택할 수 있도록 구현하고 우측 상단에 선택된 총 cell의 개수를 UI로 보여주기를 원한다. 시도 방법 func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool { guard let cell = collectionView.cellForItem(at: indexPath) as? ImageListCollectionViewCell else { return false } print(cell.isSelected) if cell.isSelected { self.total -= 1 } else { self.total += 1 } return true } sho.. 2023. 2. 15.
Explore structured concurrency in Swift 프로그래밍 언어의 초기에는 instructions의 순서대로 작성되어 가독성이 좋지 않았다. 하지만 오늘날의 언어는 structured programming을 통해 control-flow가 통일성(uniform)을 가지게 되어 가독성이 좋아졌다. (if - then 구문) Swift는 Static Scope를 사용한다. Concurrency에서의 Structured Programming 썸네일 이미지를 가져오는 전통적인 방식의 비동기 처리 코드 (escaping closure 사용) func fetchThumbnails( for ids: [String], completion handler: @escaping ([String: UIImage]?, Error?) -> Void ) { guard let id .. 2023. 2. 11.
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.