일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스유
- composable architecture
- widgetkit
- swift concurrency
- Protocol
- c++
- 문법
- 컴퓨터그래픽스
- 운영체제
- Swift
- 멋쟁이사자처럼
- 스위프트
- dispatchqueue
- TCA
- 알고리즘
- 후기
- 백준
- 영남대
- 위젯킷
- 대외활동
- SwiftUI
- 웹
- uikit
- 네트워크
- 1일1알골
- 멋사
- widget
- cs
- 리액트
- spritekit
- Today
- Total
목록Protocol (5)
맛동산이
actor는 swift에서 새로이 만든 타입이었다. 그렇다면 Actor는 무었일까?ActorActor는 actor타입이 채택하고 있는 프로토콜이다. Actor프로토콜은 AnyActor과 Sendable을 상속하고 있다. 따라서 Actor은 Sendable을 강제적으로 채택하게 하는 프로토콜이라는것 SendableSendable이란, 주어진 값이 concurrency 환경에서 안전하게 데이터가이동된다는 뜻, 이전에 말했던, Actor-isolation처럼 data race가 일어나지 않으려면 데이터가 변경되지 않거나, 공유되지 않는 경우 data race는 발생하지 않는다. 이를 보장하는 프로토콜이다. Sendable채택Sendable을 채택하려면, 주어진 타입의 값이 concurrent code에서 안전..
associatedtypeassociatedtype은 프로토콜에서 지네릭을 사용하기 위해서 사용하는 문법이다. Generic이란지네릭이란, 타입에 의존하지 않고 범용적으로 코드를 작성할때 사용하는 방식으로, 실제 함수가 호출될 때 해당 매개변수의 타입으로 대체되는 Placeholder를 의미한다. 하지만 기존의 프로토콜에서 지네릭을 사용하고 싶다면 associated type을 사용하라고 가이딩 한다. 실제로 사용하려면 이렇게 하면된다. 이거를 실제 채택한 클래스에서 다음과 같이 사용하면된다. protocol someProtocol { associatedtype someType func getSomeType(t: someType) } class Adapt: someProtocol { typealias s..
애니메이션 처리를 하던 도중 계속해서 애니메이션이 @State 의 변경에도 불구하고 변경되지 않는 것을 확인하엿다. 왜그런가 해서 다른사람들이 처리한 애니메이션을 봤는데 다른사람은 AnimationHash라는 클래스를 설정해서 애니메이션이 변경되도록 처리해주어서 해당 코드를 분석한 결과 Identifiable이라는 프로토콜을 채택하는것으로 문제를 해결했다고 생각이 들어서 이에 대해서 정리해본다. identifiableidentifiable이란 프로로토콜로, instance 가 stable identity를 가지도록 하는 프로토콜이다.여기에서 말하는 stable identity란, being able to see yourself as same person in the past, and future로, 생성..
프로토콜은 타입으로 사용이 가능하다. 이것은 해당 프로토콜을 채택한 어떠한 클래스의 인스턴스도 들어갈 수 있다는 것을 의미한다. " You can set it to an instance of any type that adopts the protocol ." 예를 들어 protocol Human { func getAge() -> Int } class Male: Human { var age: Int init(_ age: Int) { self.age = age } func getAge() -> Int { return age } } class Female: Human { var age: Int var name: String init(age: Int, name: String) { self.age = age sel..
Hashable이란? 먼저 최초의 질문은 Hashable이라는 프로토콜이 무엇인지에 대한 궁금증에서 출발한다. Hashable이란, hasher로 인하여 int값인 hash value를 가져서 hashing 될수있는 타입을 의미한다. 그렇다면 Hasher는? Hasher는 구조체 이며, hash 함수이며, 주로 셋과 딕셔너리 타입에서 사용한다. 해당 메소드를 보면 다음과 같은데 .combine(H) : 주어진 값을 해셔에 추가해서 해셔에 혼합한다. .finalize() → Int : 해시를 완료하고 해시 값을 반환한다. 해시(Hash) 쉽게 말해서 딕셔너리 같은 타입이 해시를 사용하게 되는데, 이는 Key와 Value값의 1대1 매핑을 해주게 되는 자료형이다. 그런데 이때 이 value값을 해시테이블이라..