안녕하세요 :) Zedd입니다. 오늘은 Sendable에 대해 공부! # Actor 자 여러분 actor 아시죠!? actor BankAccount { } 이렇게 actor 타입을 만들었었잖아요! 근데 Actor라는 것도 있어요. 얘는 뭘까요? Actor는 프로토콜이에요. 모든 actor가 준수하고 있는 common protocol이 Actor입니다. 이 Actor 프로토콜은 모든 actor 타입을 일반화합니다. actor 타입은 암시적으로 이 프로토콜(Actor)을 따르고 있어요. actor BankAccount { } let account = BankAccount() account is Actor // true 이게 된다는거! 🤷 : 이게 Sendable이랑 무슨..상관.. 🧑💻 : Actor가 S..
📖 Actor (1) 읽으러가기 📚 Actor (2) 읽으러가기 안녕하세요 :) Zedd입니다. Actor (2) - Actor isolation 글에서 Actor isolation을 공부해봤는데요. 오늘은 isolated parameter / nonisolated keyword에 대해서 공부해보겠습니다. 반드시 Actor (2) - Actor isolation 글을 읽고와주세요. # 한계 Actor (2) - Actor isolation 글에서 BankAccount Actor를 정의했었습니다. (extension에 있던 Transfer메소드는 제외하고 보도록하죠) actor BankAccount { let accountNumber: Int var balance: Double init(accountNum..
📖 Actor (1) 읽으러가기 # Actor 특징 복습 📝 - Actor는 그냥 Swift의 새로운 타입임. 클래스와 가장 유사. - Swift의 다른 모든 타입들과 똑같이 프로퍼티, 메소드, 이니셜라이저, subscripts 등을 가질 수 있음. - 프로토콜 준수, Extension 역시 쌉가능 - 참조타입 like class - 클래스와 달리 Actor는 한번에 하나의 작업만 변경 가능한 상태(mutable state)에 접근할 수 있도록 허용. - 클래스와 달리 상속을 지원하지 않음. # Actor isolation 우리가 사실 immutable state면 Actor를 쓸 필요도 없잖아요? 근데 지금 (Shared) mutable state여서 지금 문제가 발생할 여지가 있는거ㅇㅇ 그래서 우리가..
안녕하세요 :) Zedd입니다. WWDC 21 ) What‘s new in Swift 에서도 잠깐 본 내용인데, Actor에 대해서 공부. # 다중 쓰레드 시스템에서 제대로 작동하지 않는 코드 WWDC 21 ) What‘s new in Swift 에서 본 예제. class Counter { var count: Int = 0 func increment() { self.count += 1 } } 이런 Counter가 있고, let counter = Counter() // global DispatchQueue.global().async { counter.increment() } // main counter.increment() 이렇게 각기 다른 스레드에서 increment를 호출하면, 대충 이런 경고를 받을 ..
# Swift 5.5 - 지금까지 최고의 릴리즈 - Swift Concurrency를 포함하여 편리/효율/안전하게 concurrent programming을 할 수 있다. # Swift Package Index Swift Package Index는 Swift Package Manager를 지원하는 패키지를 찾을 수 있도록 커뮤니티에서 만든 페이지 이제 Swift 5.5 및 Xcode 13에서는 패키지를 훨씬 더 빠르고 쉽게 사용할 수 있도록 Xcode가 지원함. Xcode 12에서는 이렇게 URL만 입력할 수 있었는데, Xcode 13에서는 File > Add Package를 누르면 이렇게!!!! Swift Package Manager를 지원하는 Package들의 리스트가 나옴. "Package Coll..
안녕하세요 :) Zedd입니다. 4월 26일에 Swift 5.4가 릴리즈 됐네요. Xcode 12.5 Beta Release Notes 📝의 Swift > New feature부분에서 다루긴 했는데, 안본것도 있고 그러니 호다닥 공부해보겠습니다. Swift 5.4는 다음과 같은 새로운 언어 feature가 포함됩니다. - functions, subscripts, initializers에서 multiple variadic parameters 지원. - implicit member syntax확장 - Result builders - overloading을 지원하는 Local functions(지역 함수) - local variables(지역 변수)에 대한 Property wrappers # [SE-0284]..
안녕하세요 :) Zedd입니다. 오늘은..얼마전 나온 Swift Collections에 대해서 간단히 공부해보려고 합니다! # Swift Collections - Swift Algorithms, Swift Numerics 패키지와 같은 오픈소스 패키지 - Swift Standard library에는 가장 필수적인 범용 데이터 구조인 Array, Set, Dictionary를 구현하고 있음. ➞ 하지만 때때로 더 큰 데이터 구조 라이브러리의 이점을 가져가고 싶을 때, Collections 패키지를 사용하면 된다. # 사용법 1. 프로젝트 준비 나는 그냥 Command line tool만듬 2. 패키지 추가 왼쪽 아래 + 버튼 눌러서 github.com/apple/swift-collections URL입력해..
안녕하세요 :) Zedd입니다. 오늘은 매우 핫한 async, await를 한번 보려고 합니다. 2021.03.25일 기준 async-await proposal은 Swift 5.5에서 구현된 상태입니다. + ) 2021.06.15 글 수정. @asyncHandler 내용 삭제. # 문제 1. Swift 개발에서 Closure 및 completion handlers를 사용하는 asynchronous(비동기) 프로그래밍을 많이 함. 2. 많은 비동기 작업 / 오류 처리 / 비동기 호출간의 제어 흐름이 복잡할 때 문제가 됨 [1] 많은 비동기 작업 일련의 비동기 작업에는 deeply-nested closures가 필요. func processImageData1(completionBlock: (_ result:..
- github
- Git
- 스위프트
- WKWebView
- swift tutorial
- swift 공부
- swift sort
- np-complete
- fastlane
- Combine
- 제이슨 파싱
- 피아노
- iOS delegate
- swift array
- WidgetKit
- 회고
- swift3
- Swift
- np-hard
- swift delegate
- SwiftUI
- UIBezierPath
- WWDC
- ios 13
- Xcode
- IOS
- 스위프트 문법
- Accessibility
- FLUTTER
- actor
- Total
- Today
- Yesterday