iOS프로그래밍기초(Smile Han)/문법 정리 11

[Swift] 문법 정리 - 오류 처리(Error Handling), Generic<>

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (39:30 ~ 42:31)    # throwing function 매개변수 괄호 다음에 throws라는 키워드가 있는 함수는 그냥 사용할 수 없고 error handling을 해야 함 func can() throws error handling을 해야하는 함수func canThrowErrors() throws -> String error handling 할 수 없는 함수func cannotThrowErrors() -> String관리메뉴열기# 오류 발생 가능 함수의 호출 방식 : do~try~catchdo { audioPlayer = try AVAudioPlayer(content..

[Swift] 문법 정리 - 옵셔널 체이닝(Optional Chaining)

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (37:05 ~ 39:30)    print(_:seperator:terminator:)print("일 이 삼")print("1 2 3")print(1, 2, 3)print(1.0, 2.0, 3.0)print(1, 2, 3, separator: "...")for n in 1...3 { print(n)}for n in 1...3 { print(n, terminator: " ")}출력값일 이 삼1 2 31 2 31.0 2.0 3.01...2...312 3 1 2 3 forced unwrappingvar x : Intx = 10if x != nil { print(x!)}els..

[Swift] 문법 정리 - 클래스(class) vs 구조체(struct) vs 열거형(enum)

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (35:40 ~ 37:02)   # 구조체구조체/enum의 인스턴스는 값 타입, 클래스의 인스턴스는 참조 타입구조체는 상속 불가struct Resolution { // 구조체 정의 var width = 1024 // 프로퍼티 var height = 76}let myComputer = Resolution() // 인스턴스 생성print(myComputer.width) // 프로퍼티 접근  구조체 : Memberwise Initializerstruct Resolution { // 구조체 정의 var width : Int // 프로퍼티 var height : Int}le..

[Swift] 문법 정리 - 열거형(enum)

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (34:04 ~ 35:40)  # 열거형(enum) 관련있는 데이터들이 멤버로 구성되어 있는 자료형원치 않는 값이 잘못 입력되는 것 방지입력 받을 값이 한정되어 있을 때특정 값 중 하나만 선택하게 할 때예색깔 : 빨강, 녹색, 파랑 / 성별 : 남, 여 열거형 정의enum 열거형명{ 열거형 정의}enum Planet { case Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune} // 하나의 case문에 멤버들 나열하는 것도 가능enum Compass { case North case South case East ca..

[Swift] 문법 정리 - extension, Swift 접근 제어(access control), 프로토콜(protocol)

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (29:14 ~ 34:03) # 익스텐션 스위프트 클래스, 구조체, 열거형, protocol에 새로운 기능을 추가익스텐션은 하위 클래스를 생성하거나 참조하지 않고 기존 클래스에 메서드, 생성자(initailizer), 계산 프로퍼티 등의 기능을 추가하기 위하여 사용스위프트 언어의 built-in 클래스와 iOS 프레임워크에 내장된 클래스에 기능을 추가할 때 익스텐션을 이용하면 매우 효과적임클래스(구조체, 열거형, protocol)는 다음과 같은 형태로 확장(익스텐션)됨extension 기존타입이름 { // 새로운 기능}표준 자료형 Double 구조체에 두 배의 값을 반환하는 프로퍼..

[Swift] 문법 정리 - 상속

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (27:25 ~ ) superclass(부모 클래스)subclass(자식 클래스) # Swift 상속class 자식: 부모 {}부모 클래스는 하나만 가능함.여러개라면 나머지는 부모 클래스가 아닌 프로토콜class 클래스명: 부모명, 프로토콜명{}// 부모가 있으면 부모 다음에 표기class 클래스명: 부모명, 프로토콜명1, 프로토콜명2{}class 클래스명: 프로토콜명1, 프로토콜명2{}// 부모가 없으면 바로 표기 가능class 클래스명: 프로토콜명1, 프로토콜명2{}클래스, 구조체, 열거형, extension에 프로토콜을 채택(adopt)할 수 있다.class Man{ var ..

[Swift] 문법 정리 - 클래스

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (22:20 ~ 27:25) Swift에서는 데이터를 프로퍼티(Property)라고 하며 멤버 함수는 메소드(Method)라고 한다. # Swift의 클래스 선언기본 구조class 새로운 클래스 이름: 부모 클래스 { // 프로퍼티, 클래스 내에 포함되는 변수(var)와 상수(let)를 정의 // 인스턴스 메서드, 객체가 호출하는 메서드를 정의 // 타입 메서드(클래스 메서드)} # 클래스에 property 저장하기프로퍼티는 초기값이 있거나 init을 이용해서 초기화하거나 옵셔널 변수(상수)로 선언property는 저장 프로퍼티(stored property)와 계산 프로퍼티(..

[Swift] 문법 정리 - 함수, 메서드(method)

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (16:23 ~ 22:01)  # 함수함수는 특정 작업을 수행하는 코드 블록이다.함수를 수행하기 위하여 데이터가 제공될 수 있으며, 함수를 호출한 코드에 작업한 결과를 반환할 수도 있다. 매개변수(parameter, 인자) vs 인수(argument) 함수 - 자판기인수 : 호출 시의 값 - 내가 가진 동전매개변수 : 정의부의 값 - 자판기 안에 넣은 내 동전리턴값 (return value) - 자판기에서 나온 음료수import Foundationfunc fun(param: Int){    print(param)}func main(){    let argument = 10 // Argu..

[Swift] 문법 정리 - 연산자, 제어문

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다. (11:41 ~ 16:22)  # 연산자연산자의 종류는 매우 다양한데, 그 중 교수님께서 중요하다고 짚어주신 부분을 위주로 살펴보자. 1. 산술 연산자 2. 복합 할당 연산자 3. 증가 연산자와 감소 연산자단항 연산자x의 값을 1 증감x = x + 1 // x 변수의 값을 1 증가시킴x = x - 1 // x 변수의 값을 1 감소시킴x++ // x += 1x-- // x -= 1x++, x--는 Swift 3에서 없어진 문법임.4. 비교 연산자 5. 불리언 논리 연산 6. 범위 연산자닫힌 범위 연산자 (closed range operator)x...y // x에서 시작하여 y로 끝나는 ..

[Swift] 문법 정리 - optional, as, nil, Any, AnyObject

https://youtu.be/R8OWOgCNt4M?si=bldau6gYEZ3seGj2위 영상을 보고 정리한 글입니다 (6:48 ~ 11:40)   # 옵셔널 타입 (optional type)옵셔널 데이터 타입은 다른 프로그래밍 언어에는 없는 새로운 개념값을 반환할 때 오류가 발생할 가능성이 있는 값은 옵셔널 타입이라는 객체로 감싸서 반환함print(Int("100")) // 문자열 "100"을 정수로 변환하고자 함. // 변환이 성공하면, 100이 아닌 Optional(100)을 반환 : Int형 initializerInt("Hi") // 문자열 "Hi"를 정수로 변환이 불가함. // 변환이 실패하고 nil을 반환Swift에서 기본 자료형(Int, Double, String 등)은 nil 값을 ..