본문 바로가기
Swift09 - 클로저 Closures Closures are self-contained blocks of functionality that can be passed around and used in your code. Closures in Swift are similar to blocks in C and Objective-C and to lambdas in other programming languages. 클로저란? 클로저는 실행가능한 코드 블럭입니다. 함수와 다르게 이름정의는 필요하지는 않지만, 매개변수 전달과 반환 값이 존재 할 수 있다는 점이 동일합니다. 함수는 이름이 있는 클로저입니다. 일급객체로 전달인자, 변수, 상수 등에 저장 및 전달이 가능합니다. 클로저는 함수의 전달인자인 콜백함수로 주로 사용된다 기본 클로저.. 2021. 2. 2.
Swift08 - 값 타입 vs 참조타입 값 타입(Value Type) 데이터를 전달 할 때 값을 복사하여 전달합니다. 구조체 열거형 값 타입을 사용하는 경우 연관된 몇몇의 값들을 모아서 하나의 데이터 타입으로 표현하고 싶은 경우 다른 객체 또는 함수 등으로 전달될 때 참조가 아니라 복사(값 복사) 할 경우 자신을 상속할 필요가 없거나, 다른 타입을 상속 받을 필요가 없는 경우 스위프트의 기본 데이터 타입은 모두 구조체로 구현되어있습니다. 스위스트는 구조체와 열거형 사용을 선호합니다. struct ValueType { var property = 1 } // 첫 번째 구조체 인스턴스 let firstStructInstance = ValueType() // 두 번째 구조체 인스턴스에 첫 번째 인스턴스 값 복사 var secondStructInsta.. 2021. 2. 1.
Switf07 - 구조체 vs 클래스 vs 열거형 클래스 - 단일상속 - 프로퍼티, 메서드 갖는다 - 참조타입 - apple프레임워크의 대부분의 큰 뼈대는 모두 클래스로 구성 구조체 - 다른 언어의 구조체보다 다양한 기능을 갖는다 - 상속 불가 - 프로퍼티, 메서드 갖는다 - 갑 타입 - swift의 대부분의 큰 뼈대는 구조체로 구성되어 있다 열거형 - 상속불가 - 열거형 자체가 하나의 값 타입 - 열거형 case 하나하나가 유의미한 값 - 값타입 2021. 2. 1.
Swift-06 열거형 Enumerations An enumeration defines a common type for a group of related values and enables you to work with those values in a type-safe way within your code. 열거형이란? - 유사한 종류의 여러 값을 한 곳에 모아서 정의한 것. - enum 자체가 하나의 데이터 타입 - 대문자 카멜케이스를 사용하여 이름을 정의. - 각 case는 그 자체가 고유의 값입니다.(각 case에 자동으로 정수값이 할당되지 않음) - 각 case는 소문자 카멜케이스로 정의 - 각 case는 한 줄에 개별로도, 한 줄에 여러개도 정의할 수 있습니다. enum Weekday { case mon case tue.. 2021. 2. 1.
Swift-05 구조체, 클래스 구조체란 - 새로운 데이터 타입을 정의 - 구조체 내부에 값을 저장하기 위해 프로퍼티를 정의 - 구조체 내부에서 기능 실행을 위해 메서드를 정의 - 값 타입 : 구조체로 정의한 타입의 값이 전달될때는 해당 값이 복사되어 전달된다 - 이니셜라이저 정의 가능 - 상속 불가능, 타입캐스팅 불가능, 디이니셜라이저 불가능 구조체를 사용하는 경우 - 연관된 간단한 값의 집합을 캡슐화하는 것이 목적일 때 - 캡슐화한 값을 참조하는 것보다 복사하는 것이 합당할 때 - 구조체에 저장된 프로퍼티가 값 타입이고 참조보다 복사하는 것이 합당할 때 - 다른 타입으로부터 상속받거나 자신을 상속할 필요가 없을 때 구조체 문법 구조체 프로퍼티 및 메서드 구현 struct Sample { // 가변 프로퍼티(값 변경 가능) var m.. 2021. 1. 31.
viewController life cycle ​ 어플리케이션이 실행하면서 ViewController들이 만들어지고 사라지며 화면을 띄우고 내리는 작업을 하는데, 이러한 과정들은 event에 의해 메소드가 호출됩니다. ​ ​ Init() storyboard를 통해 View Controller들을 만들 경우 ViewController 객체가 생성될 때 초기화 작업을 합니다. 이때 사용하는 메소드가 init() 입니다. 객체를 Byte Stream으로 바꾸어 디스크에 저장하거나 네트워크를 통해 전송하는 직렬화 작업을 하지 않는 이상 매개변수로 넘어오는 NSCoder 는 무시하셔도 무방합니다. 그런데 만약 View 내의 요소를 접근한다면 이는 아직 생성되기 전 상태이기에 에러가 발생합니다. ​ 이외에도 init(nibName: bundle:) 이 존재합니.. 2021. 1. 27.