Xcode 16 릴리스 노트를 보다가...새롭게 알게 된 내용이 있어서 간단히 정리!! # Typed throws그냥 한마디로enum MyError: Error { case invalid}func foo() ➡️throws(MyError)⬅️ -> String { ... }이런식으로 throws할 때 에러 타입을 지정할 수 있게 되는 것 같다. 위 foo메소드는 String을 리턴하거나, 오직 MyError타입의 에러만 throw할 수 있다. enum OtherError: Error { case 저쩌구} func foo() throws(MyError) -> String { do { try ~~~~~~ } catch { throw OtherErr..
# 용어 정리 String literals - 소스의 문자 시퀀스(sequence of characters) String delimiters - 문자 시퀀스(sequence of characters)의 시작과 끝에서 경계를 설정. Swift의 string delimiter는 "(큰따옴표) Escape characters - String literals내에서 하나 이상의 후속 Character를 특별하게 해석한다. Swift의 Escape character는 \(백슬래시) Escape character sequences(== Escape sequence) - 특수한 문자를 나타내며, Escape characters(\)로 시작하게 된다. Escape sequence는 다음과 같은것들이 있다. 1. Stri..
안녕하세요 :) Zedd입니다. Swift 5.7에 추가된 Opaque Parameter Declarations을 보기 전에.. Opaque Type이 어떤건지!!! Opaque Type은 Swift 5.1에 추가되었습니다. Opaque Type을 직역하면 불분명한 타입 정도가 되겠네요. 불투명 타입이라고 부르는 사람도 있는데, 저는 불분명한 타입! 요게 더 와닿는것 같아서 ㅎ # Generic (갑자기) 우리에게 익숙한 Generic을 보겠습니다. struct Stack { var items: [Element] = [] mutating func push(_ item: Element) { items.append(item) } mutating func pop() -> Element { return item..
안녕하세요 :) Zedd입니다. Swift 5.7 변경사항 중 하나인 if let shorthand를 보려고 합니다. if let foo = foo { .. } 를 사용하여 기존 optional variable를 "숨기는" optional binding은 굉장히 일반적인 패턴인데요. if let foo = foo 같이 식별자를 두번 써줘야해서 let someLengthyVariableName: Foo? = ... let anotherImportantVariable: Bar? = ... if let someLengthyVariableName = someLengthyVariableName, let anotherImportantVariable = anotherImportantVariable { ... } 이렇..
안녕하세요 :) Zedd입니다. 코로롱🦠에 걸려서 이래저래 굉장히 힘드네요 🥲 진짜 안걸리는게 제일 좋다~~!!!! 조심~~!!! 오늘은 Swift 5.6에서 추가된 Introduces existential any 요 기능만 호다닥 보려고 합니다. 먼저, Existential type를 알아야 합니다. # Existential type 직역하여 "실존 타입"정도로..이해하면 될 것 같아요. 우와 새로운 개념 ㄷㄷ;;;;이 아니라 Existential type은 그냥 용어일 뿐, 우리가 계속 써왔던 개념입니다. protocol Pet { var name: String { get } } struct Cat: Pet { var name: String } Pet이라는 프로토콜이 있고, Pet을 준수하는 Cat이..
안녕하세요 :) Zedd입니다. 오늘은!!!! 주말을 맞아 그동안 미루고 미뤄왔던 Combine -> async/await로 바꾸기...ㅋㅋ.. 아주 간단한 앱이어서 호다닥 바꿔볼 수 있을 것 같습니다. 참고 : 이 앱은 Deployment Target이 15.0입니다.. # 구조 API호출이 딱 하나 있는 아주 간단한 SwiftUI앱입니다. [API.swift] HTML 삽입 미리보기할 수 없는 소스 위와 같이 Combine을 사용해서 network request를 수행하고 [Service.swift] HTML 삽입 미리보기할 수 없는 소스 service쪽에서 API에 있는 perfom 메소드를 수행합니다. [ViewModel.swift] 그래서 ViewModel쪽에서 HTML 삽입 미리보기할 수 없는..
안녕하세요 :) Zedd입니다. 오늘은 Custom View Modifier만들기 및...이걸로 버전 분기 꼼수.. # 목적 이번 글에서는 1. View Modifier가 어떤것인지 2. Custom View Modifier를 만드는 방법 3. (번외) Custom View Modifier를 사용한 버전 분기 (꼼수).. 를 다룬다. # View Modifier SwiftUI에는 ViewModifier라는 프로토콜이 존재한다. 이 modifier를 적용하면 View의 원래 값의 다른 버전을 생성하게 된다. 어렵게 생각할 필요 없이, View Modifier는 그냥 우리가 늘상 쓰는 struct ContentView: View { var body: some View { Text("Zedd") .font(...
안녕하세요 :) Zedd입니다. 오늘은 ViewBuilder에 대해 공부! # ViewBuilder 정의 : Closure에서 View를 구성하는 custom parameter attribute 뭔소린지 모르겠지만 "Closure에서 (Child) View를 구성한다"만 알면 된다. @ViewBuilder 사용법을 알아보자 # 사용 1. @ViewBuiler Prameter HStack, VStack은 많이 쓰고 봤을것이다. var body: some View { HStack { Text("Zedd") Text("Zedd") } } 보통 이런식으로 쓸텐데, 저 HStack을 보면 Closure안에!!!!!! View들을 넣어주고 있다. HStack의 생성자는 다음과 같이 생겼는데, @inlinable p..
- swift sort
- github
- Accessibility
- 피아노
- actor
- swift3
- np-complete
- IOS
- 제이슨 파싱
- Swift
- WKWebView
- swift 공부
- fastlane
- swift delegate
- UIBezierPath
- ios 13
- swift tutorial
- WidgetKit
- Combine
- SwiftUI
- 회고
- np-hard
- Git
- swift array
- iOS delegate
- FLUTTER
- 스위프트 문법
- 스위프트
- WWDC
- Xcode
- Total
- Today
- Yesterday