본문 바로가기

iOS61

[iOS] @IBOutlet과 @IBAction 인터페이스 빌더의 객체를 코드와 연결하기 위한 어노테이션 스토리보드의 인터페이스 빌더에는 여러 가지 객체가 존재한다. 레이블이나 버튼 등 여러 객체를 코드와 연결하여 레이블의 프로퍼티를 변경하거나 특정 버튼을 클릭했을 때 어떤 동작을 발생시키기 위해 @IBOutlet과 @IBAction 어노테이션을 사용한다. @IBOutlet 화면상의 객체를 소스코드에서 참조하기 위해 사용하는 어노테이션이다. @IBOutlet 어노테이션은 객체의 속성을 제어하기 위해 사용한다. 간단한 예제로 살펴보자. 스토리보드에 하나의 Label이 추가되어 있는 상태이다. 앱을 실행했을 때 해당 Label의 텍스트를 "1"로 설정하기 위해서는 어떻게 해야 될까? 먼저 화면의 Label을 소스코드에서 참조하기 위해 @IBOutlet을 .. 2021. 11. 22.
[iOS 기초] UIView 화면의 직사각형 영역에 대한 내용을 관리하는 개체 @MainActor class UIView : UIResponder 개요 뷰는 사용자 인터페이스의 기본 구성요소이며 UIView 클래스는 모든 뷰에 공통 동작을 정의한다. View 객체는 사각형 경계 내에 컨텐츠를 렌더링하고 해당 컨텐츠와의 상호작용을 처리한다. UIView 클래스는 인스턴스화하고 고정된 배경색을 표시하는 데 사용할 수 있는 클래스이다. 보다 정교한 컨텐츠를 위해 서브클래스화 할 수도 있다. 앱에서 볼 수 있는 라벨, 이미지, 버튼 및 기타 인터페이스 요소를 표시하려면 직접 정의하기 보다는 UIKit 프레임워크에서 제공하는 뷰 하위 클래스를 사용하면 된다. 뷰 객체는 앱이 사용자와 상호 작용하는 주요 방법이기 때문에 여러 임무가 있다. 다.. 2021. 11. 17.
[iOS 기초] UIKit 프레임워크 사용자의 인터페이스 관리, 이벤트를 처리하는 것이 주 목적인 프레임워크 UIKit 프레임워크는 iOS 및 tvOS용 앱을 구축하는 데 필요한 핵심 객체를 제공한다. 이러한 핵심 객체들은 컨테츠를 화면에 표시하고, 컨텐츠와 상호작용하며 시스템과의 상호 작용을 관리하는 데 사용된다. 앱은 기본 동작을 위해 UIKit에 의존하며, UIKit은 사용자의 요구에 맞게 동작을 사용자 정의할 수 있는 많은 방법을 제공한다. 모든 UIKit 앱은 다음과 같은 resource들을 필요로 한다. App icons Launch screen 스토리보드 [App icons] 앱 아이콘은 홈 스크린 등에 보여지는 그림이다. 이 그림을 통해서 사용자는 다른 앱과 해당 앱을 구분할 수 있다. 이러한 앱 아이콘은 여러 곳(홈 스크린,.. 2021. 11. 17.
[Swift] Chapter 30. 불명확 타입 반환 타입에 불명확 타입(Opaque Types)을 사용하면 반환할 타입의 정확한 타입을 알려주지 않은채로 반환하겠다는 것을 의미한다. 프로퍼티나 서브스크립트의 선언 혹은 함수의 반환 타입 위치에 프로토콜을 쓰면서 앞에 some을 붙이면, '이 프로토콜을 준수하는 어떤 타입 중에 하나일 것은 분명하다'는 뜻이다. 언뜻 보면 제네릭과 비슷해 보이지만 많이 다르다. 제네릭은 정의해 줄 때 정확히 어떤 타입이 들어올지 모르는 상태로 플레이스 홀더를 만들어 준다. 불명확 타입은 반대로 외부에서는 어떤 타입이 나에게 반환될지 모른다. 다시 말해서 제네릭은 외부에서 타입을 지정해 주는 것이고, 불명확 타입은 내부에서 타입을 정해서 내보내게 되는데, 밖에서는 정확히 어떤 타입인지는 몰라도 쓸 수 있는 것이다. 그래서.. 2021. 10. 24.
[Swift] Chapter 29. 메모리 안전 스위프트는 안전을 중요시하는 언어이다. 그래서 컴파일러가 코드에서 위험을 줄일수 있도록 많은 장치를 두었다. 그 중 큰 부분을 차지하는 것이 메모리의 안전한 접근이다. 변수를 사용하기 전에 초기화를 강제하고, 해제된 메모리에 접근할 수 없도록 설계된 것들이 그 대표적인 예다. 스위프트는 메모리를 자동으로 관리하기 때문에 특별한 경우가 아니라면 프로그래머가 메모리의 접근에 대해 크게 신경쓸 필요가 없다. 스위프트 컴파일러는 메모리 접근 충돌이 생길만한 코드를 미연에 알려준다. 이번 장에서는 이에 대해 알아보자. 29.1 메모리 접근 충돌의 이해 프로그래머가 변수에 값을 할당한다던가 함수의 전달인자로 변수의 값을 전달하는 등 다양한 경우에 코드를 통해 메모리에 접근하게 된다. /* 코드 29-1. 코드를 통.. 2021. 10. 24.
[Swift] Chapter 28. 오류처리 스위프트가 제공하는 오류처리 기능에 대해 알아보자. 28.1 오류처리란 오류처리(Error Handling)는 프로그램이 오류를 일으켰을 때 이것을 감지하고 회복시키는 일련의 과정이다. 오류처리 기능을 통해 프로그램 자체적으로 오류를 해결할 수도 있고, 사용자와 상호작용을 통해 오류를 어떤 방향으로 풀어나갈지 제어할 수도 있다. 28.2 오류의 표현 스위프트에서 오류는 Error라는 프로토콜을 준수하는 타입의 값을 통해 표현된다. Error 프로토콜은 사실상 요구사항이 없는 빈 프로토콜일 뿐이지만, 오류를 표현하기 위한 타입(주로 열거형)은 이 프로토콜을 채택한다. 스위프트의 열거형은 오류의 종류를 나타내기에 아주 적합한 기능이다. 연관 값을 통해 오류에 관한 부가 정보를 제공할 수도 있다. [코드 28.. 2021. 10. 24.