본문 바로가기

iOS61

[Swift] Chapter 27. ARC 매번 전달할 때마다 값을 복사해 전달하는 값 타입과는 달리 참조 타입은 하나의 인스턴스가 참조를 통해 여러 곳에서 접근하기 때문에 언제 메모리에서 해제되는지가 중요한 문제이다. 인스턴스가 적절한 시점에 메모리에서 해제되지 않으면 한정적인 메모리 자원을 낭비하게 되며, 이는 성능의 저하로 이어지게 된다. 스위프트는 프로그램의 메모리 사용을 관리하기 위하여 메모리 관리 기법인 ARC를 사용한다. NOTE_ARC와 값 타입 ARC가 관리해주는 참조 횟수 계산(Reference Counting)은 참조 타입인 클래스의 인스턴스에만 적용된다. 구조체나 열거형은 값 타입이므로 참조 횟수 계산과 무관하다. 즉, 구조체나 열거형은 다른 곳에서 참조하지 않기 때문에 ARC로 관리할 필요가 없다. 27.1 ARC란 ARC.. 2021. 10. 23.
[Swift] Chapter 26. where 절 스위프트의 where 절은 특정 패턴과 결합하여 조건을 추가하는 역할을 한다. 조건을 더 추가하고 싶을 때, 특정 타입에 제한을 두고 싶을 때 등등 다양한 용도로 사용된다. 26.1 where 절의 활용 where 절은 크게 두 가지 용도로 사용된다. 패턴과 결합하여 조건 추가 타입에 대한 제약 추가 다시 말해서 특정 패턴에 Bool 타입 조건을 지정하거나 어떤 타입의 특정 프로토콜 준수 조건을 추가하는 등의 기능이 있다. 예제를 통해 where 절과 결합할 수 있는 다양한 패턴과 그 활용에 대해 알아보자. [코드 26-1]에서 값 바인딩, 와일드카드 패턴과 결합한 where 절을 살펴보자. /* 코드 26-1. 값 바인딩, 와일드카드 패턴과 where 절의 활용 */ let tuples: [(Int, .. 2021. 10. 23.
[Swift] Chapter 25. 패턴 스위프트에는 문법에 응용할 수 있는 다양한 종류의 패턴(Pattern)이 있다. 여러 패턴을 잘 숙지해두면 스위프트 코드의 양을 줄이는 효과는 물론, 스위프트 문법을 좀 더 잘 활용할 수 있다. 패턴은 '단독 또는 복합 값의 구조를 나타내는 것'이고, 패턴 매칭은 '코드에서 어떤 패턴의 형태를 찾아내는 행위'라고 할 수 있다. 쉽게 말하자면 '이러이러한 것을 표현하고 싶다'면, '이러이러한 패턴을 통해 표현하면 된다'라고 이해하면 된다. 대부분의 패턴은 switch, if, guard, for 등의 키워드와 아주 친하며 두 개 이상의 키워드가 합을 이뤄 동작한다. 스위프트의 패턴은 크게 두 종류로 나뉜다. 값을 해체(추출)하거나 무시하는 패턴 와일드카드 패턴, 식별자 패턴, 값 바인딩 패턴, 튜플 패턴 .. 2021. 10. 23.
[iOS 기초] Label, Button 연결 위와 같이 label을 마우스 오른쪽 버튼을 누른 채 ViewController 클래스 내부로 드래그하면 위의 화면처럼 값을 설정하는 팝업 창이 나온다. 설정을 마친 후 Connect 버튼을 클릭하면 아래와 같은 소스가 추가된다. @IBOutlet var uiTitle: UILabel! 이 변수는 인터페이스 빌더의 레이블을 스위프트 클래스가 참조할 수 있도록 연결된 멤버 변수로, 아울렛 변수라고 부른다. @IBOutlet이라는 키워드는 인터페이스 빌더에 관련된 속성이라는 것을 알려주는 어노테이션이다. uiTitle 변수는 뷰 컨트롤러에 추가했던 레이블과 직접적으로 연결되어 있다. 이 변수의 속성을 변경하면 화면상에 있는 레이블에도 그대로 반영된다. 버튼 연결로 레이블 연결과 비슷한 과정을 거친다. 위의 .. 2021. 10. 15.
[iOS 기초 - 03] 처음 생성된 ViewController.swift의 내용 처음 프로젝트를 생성하고 ViewController.swift를 보면 다음과 같은 내용으로 구현되어 있다. import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } } import UIKit UIKit 프레임워크를 사용하기 위해 필요한 기본 파일들을 읽어 들이는 부분이다. UIKit은 추후 자세히 알아보겠지만 앱 화면을 구성하는 데에 필요한 모든 객체들이 포함된 프레임워크다. 파운데이션 프레임워크와 함께 iOS 앱을 만들기 위해 꼭 필요한 핵심이라고 할 수 있다. class ViewC.. 2021. 10. 15.
[iOS 기초 - 02] 프로젝트 구성과 스토리보드 *.swift 확장자로 이루어진 클래스 파일은 앱의 소스 코드를 구성하는 역할을 한다. AppDelegate.swift : 앱 전체의 생명 주기 관리를 위임받은 객체인 앱 델리게이트를 구현한 클래스이다. 쉽게 말해 앱 전체에 적용해야 할 기능을 담당하는 클래스라고 할 수 있다. 다양한 상태 변화를 감지하고 이에 대한 처리를 해 주어야 할 때 이 클래스를 이용한다. ViewController.swift : 뷰 컨트롤러를 구현한 클래스. 앱은 하나 이상의 화면을 가지는데, 이를 관리하기 위해 사용되는 것이 뷰 컨트롤러이다. *.storyboard 확장자로 이루어진 스토리보드 파일은 유저 인터페이스를 종합적으로 구현하는 역할을 한다. Main.storyboard : 앱의 사용자 인터페이스 설계를 담당 Laun.. 2021. 10. 15.