본문 바로가기

iOS/Swift74

[Swift] defer 음... 잠이 안와서.. 간단히 defer.. defer가 무엇이냐? 함수가 종료되기 전에 실행되야 할 코드를 작성하는 블럭을 의미한다. 예를 들면.. func config() { // config code.. // after complete config code.. defer { print("complete!") } } 이런 식이다. 이리 간단해보이는 defer는 중첩이 가능한데 이 때 defer 블럭 실행 순서가 중요하다. defer는 Stack 방식으로 동작하여(LIFO) 선언된 역순으로 호출된다. func test() { defer { print("test 1") } do { defer { print("test 2") } print("test 3") } for i in 0.. 2 그리고 다음 블럭.. 2022. 6. 10.
[Swift] mutating 2021.08.11 - [iOS/Swift] - [Swift] Struct Mutating [Swift] Struct Mutating Struct Mutating 구조체의 메소드를 구조체 내부에서 데이터 수정 할 때는 Mutating 키워드를 선언 해주어야함 struct coordinate { var x: Int = 0 var y: Int = 0 mutating func moveTo(x: Int, y: Int) { sel.. limjs-dev.tistory.com ㅋㅋㅋㅋㅋㅋㅋㅋ좀 더 알아보고 쓰지 새끼야... 다시 간단히 정리하려고 씁니다.. 아니 이전에 쓴 것도 맞긴한데.. 동작 방식에 대해서 추가적으로 쓰려한다. 일단 기본적으로.. 구조체의 메소드를 구조체 내부에서 데이터 수정 할 때는 Mutati.. 2022. 5. 8.
[Swift] Hashable 와 너무 졸리다 오늘은 Hashable.. 그저 딕셔너리의 키, 세트같은 중복값이 들어갈 수 없는 애들은 Hashable하다 라고만 알고있었는데, 저번주에 combine인가 hash 인가하는 메서드를 보고 공부해봐야겠다고 느껴서.. 먼저 Hashable이란 정수 해시값을 제공하여 유일하게 표현이 가능한 방법을 제공하는 프로토콜이다. 보통 hash한 값이다.. 하면 뭐.. 유일한 값, 중복되지 않는 값 -> UUID...? 뿐이 생각안나네 ㅋㅋㅋ오 때려맞춤 ㅋㅋㅋㅋ 요건 UUID에 대한 잼난 글이 있길래.. https://medium.com/@jang.wangsu/ios-swift-uuid는-어떤-원리로-만들어지는-것일까-22ec9ff4e792 [iOS, Swift] UUID는 어떤 원리로 만들어지는 것일.. 2022. 5. 2.
[Swift] Increasing Performance by Reducing Dynamic Dispatch 많이들 고민하고 사용하는 Class.. 클래스와 구조체는 할당부터 차이가 있지만 이번엔 Method Dispatch에 관련하여 알아보려 한다. 근데 Method Dispatch가 뭔데..? 디스패치하면 연예인들 찍는 게 생각날텐데, 직역한다면 메소드 부치기... 발송하기..? 메소드를 어느 곳에 부칠지에 대한 의미가 어느정도 들어맞는 것 같다. Method Dispatch란 특정 함수 호출시 어느 곳에서 함수를 호출할 것이며 어떤 함수를 호출할 것인지를 결정해주는 방식이라고 생각하면 될 것 같다. 우선 각 Dispatch 방식부터 간단히 알아보고 가자 이번 글은 클래스의 성능향상이니... 결론부터 말하자면 Method Dispatch 방식은 두가지로 나뉜다. Static Dispatch Dynamic D.. 2022. 4. 22.
Swift) COW(Copy On Write) 오늘은 미루고 미루던 COW에 대해 좀 알아보려 한다. COW란? COW는 Copy On Write의 줄임말로.. "뭔가 쓸 때 복사를 한다"는 말이다. 뭔가 쓸 때 복사를 한다.. 참고 GitHub - apple/swift: The Swift Programming Language The Swift Programming Language. Contribute to apple/swift development by creating an account on GitHub. github.com 해당 개념은 Swift에만 국한되지 않고 대부분의 컴퓨터 프로그래밍에 사용이 되는데, 정확히 어떤 개념이냐면.. 실제 원본이나 복사본이 수정되기 전까지는 복사가 이뤄지지 않고 원본을 공유하다가, 원본이나 복사본에서 수정이 일.. 2022. 2. 20.
Swift) self vs Self self vs Self 그냥 간단하게.. self 소문자로 이뤄진 self의 경우, 특정 인스턴스에 접근할 때 사용하는 참조값이다. 자기 자신의 인스턴스를 가리키는 프로퍼티로, 용도는 다음과 같다. The self expression is used to specify scope when accessing members, providing disambiguation when there’s another variable of the same name in scope 명확성을 위해 class SomeClass { var greeting: String init(greeting: String) { self.greeting = greeting } } 인스턴스 프로퍼티로 선언된 greeting이라는 변수와, 이니셜라.. 2022. 2. 20.