목록swift 시작기 (21)
BOID
안녕하세요 HoonIOS입니다. :) 이번 포스팅에는 오류처리에 대해 알아보겠습니다. :) 프로그램에서 우리가 기능을 구현했으면 그 기능들이 우리가 원하는 대로 무조건 100% 정확하게 동작한다는 보장이 없습니다. 오류는 충분히 생길 수가 있지만 앱이 그냥 종료되는 것을 방지하기 위해서 오류 처리 기능을 사용합니다. 오류처리 기능을 통해 이런 상황들을 구별하여 프로그램 자체적으로도 오류를 해결할 수 있고, 사용자와 상호작용을 통해 오류를 풀어나가는 방향으로 제어를 할 수도 있습니다. 이제부터 오류처리하는것에 대해 설명을 해보겠습니다. 오류처리 정의란? - Apple documentation에서 Error protocol의 의미로 throw 할 수 있는 에러 값을 나타내는 타입입니다. - 오류처리는 프로그..
안녕하세요 HoonIOS입니다. :) 이번에는 획득목록에 대해 알아보겠습니다. 우선 획득목록을 사용하는 이유는 우리는 클로저의 강한 참조를 해결하기 위해 획득 목록을 사용합니다. 획득목록이란? - 클로저 내부에서 참조 타입을 획득하는 규칙을 제시해줄 수 있는 기능입니다. 획득목록 문법, 형태? - 작성 위치는 클로저 내부의 매개변수 목록 이전 위치에 작성을 해줍니다. - 참조 방식과 참조할 대상을 ( [ ] )로 둘러싼 목록 형식으로 작성을 하고 획득목록 뒤에는 in 키워드를 써줍니다. - 획득목록에서 쓴 요소들이 참조타입이 아니라면 해당 요소들은 클로저가 생성될때 초기화가 됩니다. 획득목록 예시 var a = 0 var b = 0 let closure = { [a] in print(a,b) b = 20..
안녕하세요 HoonIOS입니다 :) 저번 ARC에 대한 포스팅을 할때는 인스턴스끼리의 강한참조를 했는데요, 이번에는 클로저의 값 획득 특성 때문에 발생하는 클로저의 강한 참조, 강한참조의 순환에 대해 알아보겠습니다. 클로저의 강한참조란? - 클로저의 강한참조는 클로저가 인스턴스의 프로퍼티일 때나, 클로저의 값 획득 특성 때문에 발생을 합니다. * 예를들어 - 클로저 내부에서 인스턴스의 프로퍼티에 접근할 때나 클로저 내부에서 인스턴스의 메소드를 호출할때 값 획득이 발생할수 있는데 이 경우 모두 클로저가 self를 통해 획득하므로 강한 참조 순환이 발생을 합니다. - 클로저의 강한참조 순환의 문제가 발생하는 예시를 살펴보겠습니다. - 결과부터 설명을 하자면 Person 클래스의 인스턴스를 선언해준 Lee 프..
안녕하세요 HoonIOS입니다. :) 저번에는 ARC의 참조 종류와 참조 누수를 방지하기 위한 약한 참조, 미소유 참조, 옵셔널 참조에 대해 알아보았습니다. https://boidevelop.tistory.com/30 [swift] 강한참조, 강한참조 순환, 약한참조, 미소유참조- HoonIOS 안녕하세요 HoonIOS입니다. :) 저번 시간에는 ARC의 개념에 대해 간단히 포스팅했습니다. 이번에는 ARC의 참조 관계의 종류에 대해 포스팅을 하겠습니다. ARC와 강한참조의 관계 - 강한참조란 인스턴 boidevelop.tistory.com 이번에는 미소유 옵셔널 참조, 미소유 참조와 암시적 추출 옵셔널 프로퍼티의 관계에 대해 알아보겠습니다. 미소유 옵셔널 참조 - 클래스를 참조하는 옵셔널을 미소유로 표기..
안녕하세요 HoonIOS입니다. :) 저번 시간에는 ARC의 개념에 대해 간단히 포스팅했습니다. 이번에는 ARC의 참조 관계의 종류에 대해 포스팅을 하겠습니다. ARC와 강한참조의 관계 - 강한참조란 인스턴스가 계속해서 메모리에 남아있어야 하는 명분을 만들어주는 것입니다 * 강한 참조의 특징 인스턴스의 메모리참조가 0이 되면 메모리가 해체되는데, 인스턴스를 다른 인스턴스의 변수, 상수등에 할당할 때마다 강한 참조가 사용되 참조횟수가 1이 증가하고, 강한참조를 사용하고 있는 변수, 상수에 nil값을 주면 인스턴스의 참조횟수가 1이 감소합니다. - 아래 예시는 인스턴스를 처음 변수에 넣어 메모리에 생성 후 hoon2, hoon3에 할당해주는 것입니다. - 왼쪽의 예시는 혹시 hoon1에만 이니셜 라이저로 인..
안녕하세요, HoonIOS입니다 :) 이번에는 ARC에 대해 포스팅을 하려고 합니다 ARC란? - 애플 문서에 ARC는 스위프트에서 앱의 사용하는 메모리를 추적하고 관리할 때 사용하는 것이라고 적혀있습니다. - Automatic Reference Counting의 약자를 따 ARC라고 불리는 이것은 해석 그대로 자동으로 참조관계를 카운팅 하는 것입니다. - 스위프트 프로그래밍의 메모리 사용을 관리하기 위하여 사용하는 메모리 관리기법입니다. - 참조 관계를 계산하는 방법으로 참조 타입인 클래스에서만 적용이 됩니다, 열거형 구조체는 값 타입이므로 ARC로 관리를 할 필요가 없습니다. - ARC의 방식은 더 이상 필요하지 않은 클래스의 인스턴스를 메모리에서 해제하는 방식으로 동작을 합니다. - ARC는 인스턴..
안녕하세요 HoonIOS입니다. :) 저번 포스팅에는 값을 해체(추출)하거나 무시하는 패턴의 종류에 대해 알아봤는데요, 이번 포스팅에는 패턴 매칭을 위한 패턴의 종류에 대해 알아보겠습니다. 표현 패턴은 내용이 길이서 다음 포스팅 때 따로 표현 패턴만 포스팅할게요 ㅎㅎ 패턴 매칭을 위한 패턴 종류 - 열거형 케이스 패턴, 옵셔널 패턴, 표현 패턴, 타입캐스팅 패턴 열거형 케이스 패턴이란? - 열거형 타입은 case 조건과 매치시킵니다. - 이 패턴은 switch 구문의 case레이블과 if,while, guard, for-in 구문의 case조건에서 볼 수 있습니다. - 연관값이 있는 열거형 케이스와 매치하려고 한다면 열거형 케이스 패턴에는 반드시 튜플 패턴이 함께 해야 합니다. 연관 값은 각 하나의 타입..
안녕하세요 HoonIOS입니다. :) 이번에는 패턴에 대해 포스팅 하려고 하는데요, 스위프트 내에서는 다양한 패턴이 있습니다. 패턴을 사용하는 이유는 이를 잘 활용하면 스위프트의 코드 양을 줄이는 효과를 나타낼수도 있고 스위프트의 문법을 좀더 효율적으로 활용할수 있습니다. 패턴이란? 이러이러한것을 표현하고 싶다면, '이러이러한 패턴을 통해 표현하면됩니다.' 라고 이해를 하면 됩니다. 대부분의 패턴은 switch, guard, if, for등의 키워드와 아주 친하고 2개 이상의 키워드가 합을 이루어 동작을 합니다. 위 키워드중에서 switch구문에서 가장 강력하게 발생합니다.( 후에 예제를 통해 설명을 할테니 그냥 그렇구나 하고 넘어가셔도 됩니다.) 패턴의 종류는? 값을 해체(추출)하거나 무시하는 패턴 -..