스위프트 20

[Swift] 프로퍼티 (Properties)

프로퍼티란? 클래스, 구조체, 열거형 등에 관련된 값이다. 저장 프로퍼티, 연산 프로퍼티, 타입 프로퍼티에 대해 알아보자. 1. 저장 프로퍼티 인스턴스의 변수 또는 상수를 의미한다. 변수나 상수로 선언된 클래스나 구조체의 일부분으로 저장되는 것 인스턴스가 상수(let)로 선언되었다면, 구조체 내에 저장 프로퍼티는 변경 불가능하다. 구조체가 값 타입이고, 구조체 내부의 프로퍼티들이 모두 상수가 되기 때문 But, 클래스는 참조 타입이어서 인스턴스를 상수로 선언해도 프로퍼티의 값을 변경할 수 있다. struct Dog { var name: String let gender: String } var dog = Dog(name: "iku", gender: "Male") dog.gender = "Female" //..

Swift & iOS 2022.06.15

[Swift] 초기화 구문 (init, deinit)

1. init 클래스, 구조체, 열거형의 인스턴스를 사용하기 위한 준비 과정이다. 아래와 같이 정의할 수 있다. init(매개변수: 타입, ...) { // 프로퍼티 초기화 // 인스턴스 생성시 필요한 설정을 해주는 코드 작성 } 2. deinit deinit은 파라미터를 받을 수 없으며, 클래스 당 오직 하나만 선언할 수 있다. deinit { // 인스턴스 소멸시 필요한 설정을 해주는 코드 작성 } 인스턴스가 메모리에 해제되기 직전에 호출된다. 클래스 인스턴스와 관련하여 원하는 정리 작업을 하는 역할을 한다. 클래스 인스턴스에만 구현할 수 있다. 스위프트는 인스턴스가 더이상 필요하지 않으면 메모리에서 자동 소멸시킨다. nil을 넣으면 더 이상 필요 없다고 판단 후 메모리에서 지워버린다. 3. init..

Swift & iOS 2022.06.15

[Swift] 구조체와 클래스 (struct & class)

1. 구조체 struct 구조체 이름 { 프로퍼티와 메서드 } 프로퍼티와 메서드를 합해서 구조체, 클래스의 멤버라고 한다. 멤버 변수 -> 프로퍼티 멤버 함수 -> 메서드 구조체 예시 struct User { var nickname: String var age: Int func information() { print("\(nickname) \(age)") } } var user = User(nickname: "hammii", age: 25)// 구조체 안에 따로 생성자를 선언해두지 않아도, 기본적으로 값을 초기화 할 수 있는 생성자가 만들어진다. print(user.nickname) // hammii user.nickname = "하미" print(user.nickname) // 하미 user.infor..

Swift & iOS 2022.06.14

[Swift] 옵셔널이란? 옵셔널 바인딩이란?

1. 옵셔널이란? 옵셔널이란 값이 있을 수도 있고, 없을 수도 있는 것이다. 일반적인 프로그래밍 언어에서는 값이 null 인 변수에 접근하면 프로그램이 종료된다. 하지만, swift는 안정성이 장점이므로 옵셔널을 사용하면 값이 없는 변수에 접근해도 프로그램이 종료되지 않는다 ! 그렇다면 옵셔널은 어떻게 사용할까? nil 값이 들어갈 수 있는 변수에는 타입 뒤에 ? 를 붙인다. var name: String? // nil var optionalName: String? = "hammii" print(optionalName) // Optional("hammii") name 변수는 값을 넣어주지 않아서 nil 로 초기화되었고, optionalName 변수는 Optional 에 감싸 져서 출력되었다. 옵셔널 값은..

Swift & iOS 2022.06.09

[Swift] 반복문 (for-in, while, repeat-while)

반복문은 반복적으로 코드가 실행되게 만드는 구문이다. swift에서 사용하는 반복문 3가지를 알아보자. 1. for-in 문 for 루프상수 in 순회대상 { // 실행할 구문 } for-in 문 예시 for i in 1...4 { print(i) } let array = [1,2,3,4] for i in array { print(i) } 두 가지 경우 모두 결과적으로 1 2 3 4 로 출력된다. 2. while 문 while 조건식 { // 실행할 구문 } while 문 예시 var i = 0 while i < 4 { i += 1 print(i) } 이 결괏값 또한 위에서 봤던 for-in 문의 결괏값과 동일하게 나타난다. 3. repeat-while 문 swift의 repeat-while 문은 다른 ..

Swift & iOS 2022.06.09

[Swift] 조건문 (if-else, switch, guard)

조건문은 주어진 조건에 따라서 어플리케이션을 다르게 동작하도록 하는 것이다. swift에서 사용하는 조건문 3가지를 알아보도록 하자. 1. if-else 문 if 조건식1 { // 조건식1을 만족할 때 실행할 구문 } else if 조건식2 { // 조건식2를 만족할 때 실행할 구문 } else { // 아무 조건식도 만족하지 않을 때 실행할 구문 } if-else 문 예시 let animal = "cat" if animal == "dog" { print("강아지 사료 주기") } else if animal == "cat" { print("고양이 사료 주기") } else { print("해당하는 동물 사료가 없음") } 2. Switch 문 패턴 기반으로 실행된다. 하나의 패턴이 일치하면 스위치 문은 ..

Swift & iOS 2022.06.08

[Swift] 함수, 전달인자, 매개변수

함수란? 작업의 가장 작은 단위이자 코드의 집합 하나의 기능을 하나의 함수로 만드는 것이 좋다. Swift 함수 정의 방법 func 함수 이름(매개변수 이름: 매개변수 타입) -> 반환 타입 { return 반환 값 } Swift 함수 예시 func sum(a: Int, b: Int) -> Int { return a + b } sum(a: 5, b: 3) 매개변수가 없는 경우 func hello() -> String { return "hello" } 반환 값이 없는 경우 func hello() -> Void { } func hello() { } 전달인자 & 매개변수 보통 함수를 정의할 때 매개변수 이름과 전달인자 레이블을 같은 이름으로 사용할 수 있지만, 전달인자 레이블을 별도로 지정하면 함수 외부에서 ..

Swift & iOS 2022.06.08

[Swift] 컬렉션 타입 (Array, Dictionary, Set)

컬렉션 타입이란? 데이터들의 집합 묶음, 데이터의 집합소 지정된 타입들을 하나로 묶은 형태를 말한다. 즉, 하나의 컬렉션 타입은 하나의 데이터 타입만 담을 수 있다. 1. Array 데이터 타입의 값들을 순서대로 저장하는 리스트 var numbers: Array = Array() // [] numbers.append(1) // [1] numbers.append(2) // [1,2] numbers.append(3) // [1,2,3] numbers[0] // 1 numbers.insert(4, at: 2) // [1,2,4,3] numbers.remove(at: 0) // [2,4,3] // 축약 선언 var names = [String]() var names2: [String] = [] 2. Dictio..

Swift & iOS 2022.05.02

[Swift] 상수, 변수, 데이터 타입, 타입 추론

Swift 에서는 상수와 변수를 let 과 var 로 선언할 수 있다. 상수 변하지 않는 일정한 값을 갖는다. let 상수명 : 데이터 타입 = 값 변수 변할 수 있는 값을 갖는다. var 변수명 : 데이터 타입 = 값 "모든 값을 변수로 두면 편하지 않을까?" 라는 생각을 할 수 있지만, 상수를 사용하는 이유는 가독성과 안전성 때문이다. 상수로 선언된 값은 변하지 않는 것이라는 주석이 없어도 변하지 않는 값이라는 것을 알 수 있으며, 관리가 용이하다. 그리고 바뀌면 안되는 값을 상수로 선언해두면 실수로 값이 변경되는 것을 막는 등 보다 안전한 코드 작성이 가능하다. 기본 데이터 타입 Int: 64bit 정수형 UInt: 부호가 없는 64bit 정수형 (양수만 가능) Float: 32bit 부동소수점 D..

Swift & iOS 2022.05.02

[Swift] Swift란? 스위프트의 특징은?

Swift(스위프트)란? 2014년 9월 애플 세계 개발자 회의(WWDC)에서 처음 소개된 프로그래밍 언어 기존의 애플 운영체제용 언어인 Objective-C와 함께 공존할 목적으로 만들어졌으며, 현재는 모든 사항들이 오픈소스로 공개되면서 세계의 수많은 프로그래머들이 협력하여 언어를 발전시키고 있다. 2022년 2월 기준, TIOEB에서 선정한 검색어 점유율 상위 20개 프로그래밍 언어 중 12위(1.18%)를 차지할 만큼 영향력 있는 프로그래밍 언어이다. 애플이 최초에 스위프트를 발표했을 때 스위프트 언어의 특성을 Safe, Modern, Powerful이라고 발표했다. 그러나 오픈소스로 전환되면서 특징을 Safe, Fast, Expressive로 변경하여 발표했다. Swift(스위프트)의 특징 1. ..

Swift & iOS 2022.05.01