목록스위프트 (23)
브래의 슬기로운 코딩 생활

옵셔널 체이닝 (Optional Chaining) 옵셔널 체이닝 (Optional Chaining) 옵셔널로 선언된 변수의 맴버에 안전하게 접근하기 위한 방법 (?) Optional Chaining 예 class Person { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } } let kim: Person = Person(name: "Kim", age: 20 ) print(kim.age) let han: Person? = Person(name: "Han", age: 25 ) print(han.age) //print(han!.age) // print(han?.age) //Optiona..

first class object : (1)함수를 변수에 저장 가능 Swift는 함수를 데이터 타입처럼 처리할 수 있음 다음과 같이 함수를 상수 또는 변수에 할당하는 것이 가능 func inchesToFeet (inches: Float) -> Float { return inches * 0.0833333 } let toFeet = inchesToFeet //함수를 자료형처럼 사용 함수를 호출하려면 원래의 함수 이름 대신에 상수 이름을 이용하여 호출 가능 print(inchesToFeet(inches:10)) print(toFeet(10)) //주의 : 매개변수명(inches:) 안씀 first class object : (2) 함수를 매개변수로 사용 func inchesToFeet (inches: Floa..

guard문(조건식이 거짓이면 실행) guard문은 swift 2에 도입된 구문 guard문은 표현식이 거짓(false)으로 판단될 경우에 수행될 else 절을 반드시 포함해야 함 - else 절에 속한 코드는 현재의 코드 흐름을 빠져 나갈 수 있는 구문(return, break, continue, throw 구문)을 반드시 포함해야 함 - 또는 다른 함수를 else 코드 블록 안에서 호출할 수도 있음 guard else { // 표현식이 거짓일 경우에 실행될 코드 } // 표현식이 참일 경우에 실행되는 코드는 이곳에 위치 guard문은 기본적으로 특정 조건에 맞지 않을 경우에 현재의 함수나 반복문에서 빠져 나갈 수 있도록 하는 ‘조기 출구(early exit)’ 전략을 제공 guard~let의 활용 g..

옵셔널 체이닝 (Optional Chaining) 옵셔널 체이닝 (Optional Chaining) 옵셔널로 선언된 변수의 맴버에 안전하게 접근하기 위한 방법 (?) Optional Chaining 예 class Person { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } } let kim: Person = Person(name: "Kim", age: 20 ) print(kim.age) let han: Person? = Person(name: "Han", age: 25 ) print(han.age) //print(han!.age) // print(han?.age) //Optiona..

API, Open API, RESTful을 간단하게 한 문장으로 정리 API (Application Programming Interface)는 애플리케이션들이 서로 상호작용하기 위해 사용하는 인터페이스이고, Open API는 개방적으로 접근하고 사용할 수 있는 API를 말하며, RESTful은 웹 서비스를 구축하는데 사용되는 아키텍처 스타일이다. URI와 URL URI는 리소스를 유일하게 식별하기 위한 문자열이며, URL은 그 중에서도 리소스의 위치를 지정하는 형식의 문자열이다. ViewController.swift 파일 수정 protocol 채택(adopt)과 준수(conform)개념, 필수 메서드(cellForRowAt, numberOfRowsInSection), indexPath 프로토콜 채택은 객..
- 과제 - func multiplyByTen(value: Int) { print(value*10) }multiplyByTen(value: 3) //30 강제 언래핑 func multiplyByTen(value: Int?) { print(value!*10) //강제 언래핑 }multiplyByTen(value: 3) //30 if let 옵셔널 바인딩 func multiplyByTen(value: Int?) { if let value{ print(value*10) //if let 옵셔널 바인딩 }}multiplyByTen(value: 3) //30 func multiplyByTen(value: Int?) { if let value{ print(value*10) //if let 옵셔널 바인딩 }else {..

당분간 학기 끝날 때 까지 이론은 별로 안할 예정이다. 이제 수업시간에는 거의 실습만 하기 때문에 과제나 실습 화면 캡쳐 본 등을 포스팅 하겠다. - 과제 - 기말고사 70% 네트워킹(URLSession) App Transport Security(ATS) 1급 객체(first class object), 1급 시민(first class citizen) 클로저(Closure) 후행 클로저(trailing closure) 디폴트 매개변수(아규먼트) failable initializer JSON파싱을 쉽게 하기 위한 구조체 만들기(quicktype) static metatype throwing function과 예외처리(exception handling) : do-try-catch closure 내부에서 sel..
오늘은 저번 시간에 이어서 테이블 뷰 만드는 실습을 이어하고 다음주에 볼 시험을 공지하셧다. 1교시 : Q&A 2-3교시 : 시험 cheat sheet : 자필 A4 2장(4페이지) 6주차는 옵셔널체이닝까지. 5주차 TableView 중요하므로 과제랑 영상 보면서 정리 해보고, 실습 10단계로 나눠보기. 4주차 convenience Initializer 안함. 3주차 computed property 제외, failable initializer 중요. 옵셔널 개념이 부족한 사람은 영상으로 학습하기.

오늘은 처음으로 스위프트 문법 중 옵셔널 체이닝 이라는 것을 배웠다. 자세한 내용은 추후에 클래스 카테고리의 스위프트 카테고리에 따로 글을 작성하겠다. 일단 옵셔널 체이닝이란 옵셔널을 언래핑하는 방법 중 하나 이다. 옵셔널을 언래핑 하는 방법은 원래 3가지를 알고 있었다. 1. !를 이용한 옵셔널 강제 언래핑 - 간단하게 언래핑을 할 수 있지만 변수 안에 nil값이 들어가 있다면 크래쉬가 나므로 위험한 방법이다. 2. if~let, guard~let을 이용한 옵셔널 바인딩 - nil이 저장되어 있는 경우를 설정할 수 있기 때문에 대표적으로 사용되는 언래핑 방법이다. 3. nil 합병 연산자 ?? let optionalValue: Int? = nil let defaultValue: Int = 10 let ..

프로토콜(protocol)과 Delegate 프로토콜(protocol) - 특정 클래스와 관련없는 프로퍼티, 메서드 선언 집합 - 함수(메서드) 정의는 없음 - 기능이나 속성에 대한 설계도 - 클래스(구조체, 열거형)에서 채택(adopt)하여 메서드를 구현해야 함 스위프트 상속과 프로토콜 채택 class 자식:부모 ,(프로토콜) ... { // 코드 } - 부모 클래스는 하나만 가능하며 여러 개라면 나머지는 프로토콜 - 상속은 클래스만 가능하다. (단일상속) protocol 정의 protocol 프로토콜명{ //프로퍼티명 //메서드 선언 - 메서드는 선언만 있음 } protocol 프로토콜명 : 다른프로토콜, 다른프로토콜2{ // 프로토콜은 다중 상속도 가능 } protocol 정의, 채택, 준수 pro..