일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스위프트
- IOS
- 이니셜라이저
- 디자인패턴
- String
- optional
- initalizer
- UIKit
- delegate
- instance
- Method
- init
- property
- struct
- interpace
- initializer
- Foundation
- Xcode
- 코딩테스트
- enum
- Protocol
- Terminal
- Swift
- type
- tuist
- url
- Class
- extension
- Git
- Unicode
- Today
- Total
목록전체 글 (78)
아리의 iOS 탐구생활

앞서 배우기 전에 값 타입과 참조 타입이 뭔지 알아볼까? ✔️ Swift에서 값 타입과 참조 타입 Value Type Reference Type Structure Enumeration Tuple Class Closure 🔍 값 타입(Value Type) 원본의 복사본을 가진 독립 인스턴스를 가지고 있다. 즉 함수의 매개변수로 값을 보낼 때나 값을 할당할 때 copy 속성으로 값을 처리한다는 것이다. 인스턴스 생성시 스택에 인스턴스가 저장된다. 🔍 참조 타입(Reference Type) 값 타입과 달리 값이 복사되는 것이 아닌 메모리를 참조한다. 즉 메모리 위치를 전달한다. 인스턴스 생성시 스택에는 힙메모리주소가 저장되고 힙에는 인스턴스가 저장된다. 그리고 인스턴스는 스택에 생성된 메모리에 연결된다. 값타..

✔️ inout이 뭔데? Swift는 기본적으로 'call by value' 형식이다. 그래서 call by reference를 구현하려면 함수의 매개변수를 inout parameter로 구현해야한다. 함수의 매개변수는 기본적으로 상수(let)이다. 함수는 값을 복사하여 내부에 전달하지만, inout 키워드를 사용하면 참조로 전달하게 된다. 예를 들어 일반적인 함수를 만들어서 확인해보면, var A = 3 var B = 9 func swapTwoTest(_ numbersOwn: Int, _ numbersTwo: Int) { // numbersOwn = 6 // Cannot assign to value: 'numbersOwn' is a 'let' constant // numbersTwo = 18 // Ca..

메모리 구조에 대해서 알아보기전에 메모리의 대한 내용 먼저 다루기 데이터나 프로그램을 저장하는 저장 공간은 계층 구조를 가진다. CPU에서 가장 가까운 저장공간은 레지스터인데, 레지스터 -> CPU 캐시 메모리 -> 메인메모리 -> 보조기억장치 -> 외부기억장치 순으로 멀어진다. CPU로부터 멀어질수록 데이터를 저장하는 용량이 커지고 접근 속도는 느려진다. ROM은 Read Only RAM은 Read / Write 가능 메모리 구조 스택(Stack) 먼저 들어간건 나중에 나온다. (LIFO 후위선출 구조) 할당과 해제를 반복하기 때문에 데이터 용량이 불확실하다. 메모리의 높은 주소부터 낮은 주소 순으로 할당 된다. 함수에 포함된 지역변수들만 접근할 수 있다. 컴파일 시에 할당될 영역의 크기가 결정된다. ..

Swift의 자료구조 중 하나인 Set, 컬렉션 타입 이다. 순서가 중요하지 않거나, 항목이 한번만 표시되도록 해야하는 경우 배열 대신 집합을 사용할 수 있겠다. 배열과 달리 중복 요소를 허용하지 않고, 해시를 통해 값을 저장하기 때문에 배열에 비해 검색속도가 빠르다. 저장되는 자료형은 Hashable 프로토콜을 준수하고 있어야 한다. ✔️ 초기화 빈 Set을 만들땐 꼭 타입을 명시해줘야 한다. 빈 Set은 타입추론이 불가능하다. var intSet: Set = [] 값이 있는 Set은 'Set'만 명시해준다면 타입추론이 가능하다. let stringSet: Set = ["lee", "ari", "babo"] // Set ✔️ 값 추가 insert()와 update()는 같은 일을 하지만 아래와 같이 반..

✔️ 특징 키와 값이 쌍으로 이루어진 자료형 [key : value] 순서가 없는 컬렉션이다. > key나 value를 원하는 규칙으로 정렬하면서 순회. value는 중복 가능, key는 중복 불가 ✔️ 기본적인 초기화 let dic: [String : Double] = [:] let dic2 = [String : Double]() let dic3 = [1 : "100만원", 2 : "50만원" , 3 : "10만원"] // 타입유추 ✔️ uniqueKeysWithValues 배열에 value를 임의로 추가하여 새 Dictionary로 초기화. Array > [key, value] let arr = ["own", "two", "three", "four"] let dic = Dictionary(unique..