Swift, iOS Foundation(24)
-
[Swift] [weak self] 이젠 제대로 알고 사용하자! (feat. ARC 2탄)
아직 ARC 1탄 글을 읽지 않고 오셨다면, 아래 링크로 넘어가서 읽고 오길 권장합니다:) [Swift] ARC (Automatic Reference Counting) 완전 정복하기1️⃣ ARC (Automatic Reference Counting)를 배우기 위해 알아야 하는 기초 개념1. 값 타입 (Call by Value)과 참조 타입 (Call by Reference)값 타입 (Call by Value)은 데이터를 복사해서 전달하는 경우, 참조 타입 (Callmini-min-dev.tistory.com 1️⃣ 클로저(Closure)에서도 발생하는 강한 참조 사이클(Strong Reference Cycle) 문제지난 [Swift] ARC (Automatic Reference Counting) 완전 정..
2024.07.08 -
[Swift] ARC (Automatic Reference Counting) 완전 정복하기
1️⃣ ARC (Automatic Reference Counting)를 배우기 위해 알아야 하는 기초 개념1. 값 타입 (Call by Value)과 참조 타입 (Call by Reference)값 타입 (Call by Value)은 데이터를 복사해서 전달하는 경우, 참조 타입 (Call by Reference)은 데이터의 메모리 주소를 전달하는 경우이다.클래스(class)는 대표적인 참조 타입이고, 구조체(struct)나 열거형(enum)을 비롯한 Swift의 기본 데이터 타입(Int, Bool, String 등)은 값 타입에 속한다.2. 메모리의 스택 영역 (Stack Area)과 힙 영역 (Heap Area)스택 영역 (Stack)은 함수 호출과 관련된 메모리를 관리하는 메모리 영역이다.함수에서 사..
2024.07.06 -
[Swift] 제네릭 (Generic) 완전 정복하기
1️⃣ 제네릭 (Generic)이 뭔데?💡 제네릭(Generic)은 특정 타입에 종속되지 않고 다양한 타입에 대해 타입 안정성을 유지하면서, 다양한 타입에 대해 유연하게 동작할 수 있게 해주는 문법이다.Generic은 직역하면 "일반적인"이라는 뜻을 갖고 있다.그럼 Generic 함수는 일반적인 함수? Generic 타입은 일반적인 타입?조금 더 풀어 이를 더 자세하게 말하면 "일반화된 함수나 타입"과 같은 의미라고 해석해 볼 수 있겠다.그럼 다시 "일반화란 무엇인가?"라는 질문으로 넘어갈 것 같은데, 일반화는 개별 사례들의 공통되는 속성을 일반적인 개념이나 주장으로 뽑아내는 개념이다. (추상화의 한 형태라고 볼 수 있겠다.)뭐 예시를 들어보자면 개, 고양이, 사자, 호랑이와 같은 다양한 종류의 생..
2024.07.03 -
[Swift] 프로퍼티 래퍼 (Property Wrapper)를 공부해보자
1️⃣ 왜 Property Wrapper가 필요하게 된 거지?프로퍼티 래퍼(Property Wrapper)는 클래스나 구조체의 연산 프로퍼티의 기능을 개선하기 위해 Swift 5.1부터 등장한 문법이다.연산 프로퍼티의 자세한 내용은 아래 글에 정리해뒀으니 읽어보길 바란다.간략하게 연산 프로퍼티의 개념을 리마인드하자면, get(접근자)과 set(생성자)로 구성되어 있어 저장 프로퍼티를 연산하는 문법이었다. [Swift] 구조체(Struct)와 클래스(Class) 완전 정복하기: 기본 개념부터 프로퍼티, 인스턴스, 상속까지이번 글에서는 구조체(Struct)와 클래스(Class)에 대해 아주 자세하게 다뤄보려 한다. 처음 Swift를 배우는 입장도 아닌데, 이제 와서 이 내용을 포스팅하는 이유가 뭐냐고 물어본..
2024.07.02 -
[Swift] @discardableResult란 무엇일까?
예전 @IBInspectable @IBDesignable 글에서 Swift에서 사용하는 @ 키워드는 컴파일러에게 추가적인 속성이 부여되었음을 알리는 역할이라고 설명한 적이 있었다. 즉, 코드에 메타 데이터 (special attribute와 directive)를 추가하는 역할을 하는 키워드라고 생각하면 된다. 이번 글에서는 @키워드를 사용한 @discardableResult에 대해 설명해보고자 한다. 1. @descardableResult 기본 개념 descardable = 버릴 수 있는, result = 결과 즉, "결과를 버릴 수 있도록 하는 속성"을 추가로 부여한다는 키워드가 @descardableResult이다. 이 키워드가 함수에서 사용되는 키워드라는 점에서 볼 때, 함수에서 해당하는 결과는 "..
2024.04.18