목록2-1/iOS프로그래밍 실무 (14)
브래의 슬기로운 코딩 생활
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 {..
func getData() { guard let url = URL(string: movieURL) else { print("Invalid URL") return } let session = URLSession(configuration: .default) let task = session.dataTask(with: url) { [weak self] (data, response, error) in guard let self = self else { return } if let error = error { print(error) return } guard let JSONdata = data else { print("No data received") return } let decoder = JSONDecoder..
delegation design pattern - class(struct)가 책임의 일부를 다른 유형의 인스턴스에 전달(또는 위임)할 수 있도록 하는 디자인 패턴 - protocol에 위임된 목록을 작성하고, delegate(보통 내가 만든 class)는 위임된 기능을 작성 프로토콜은 다중 상속이 가능함. optional: 필요한 경우 구현하는 메서드 required: 필수로 구현해야하는 메서드 ~.delegate = self ~.datasource = self delegate 소스에는 모든 메소드는 optional이다. 열거형(enum) .~ : .앞에 열거형 생략 enum Week: String { case Mon,Tue,Wed,Thur,Fri,Sat,Sun func printWeek() { //메서..
당분간 학기 끝날 때 까지 이론은 별로 안할 예정이다. 이제 수업시간에는 거의 실습만 하기 때문에 과제나 실습 화면 캡쳐 본 등을 포스팅 하겠다. - 과제 - 기말고사 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..
오늘은 지난주에 본 중간고사 성적을 확인 하고 API에 대해 공부 했다. 내 중간고사 성적는 30점 만점에 29점 이었다. 만족스러운 결과긴 하지만 만점을 맞았다면 더 좋았을 것 같다는 생각이 들었다. 오늘은 거의 실습 위주로 수업해서 과제만 포스팅 하겠다. - 과제 - 슈퍼 마리오 브라더스 드림 존 윅 4 스즈메의 문단속 옥수역귀신 리바운드 더 퍼스트 슬램덩크 렌필드 킬링 로맨스 무명 URL과 URI의 차이: URL은 해당 자원의 위치를 포함하는 인터넷 주소를 말하며, URI는 인터넷에서 자원을 식별하기 위한 문자열을 의미하는데, URL은 URI의 일종입니다. // This file was generated from JSON Schema using quicktype, do not modify it di..
변수 선언시 뒤에 쓰는 자료형 = 타입 어노테이션 묵시적 형변환 = 타입 추론 튜플: 여러 값을 하나의 개체에 일시적으로 묶는 방법 튜플의 요소는 서로 다른 형일수 있음 let myTuple = (10, 12.1, "Hi") var myString = myTuple.2 print(myString) // Hi void는 빈 튜플 (empty tuple) / typealias Void = () 함수(메서드)를 선언할 때 반환 값이 없으면 반환형을 지정할 필요 없음 그러나 함수, 메서드 또는 클로저의 형(type)에는 반환형 반드시 작성 단 한 줄의 코드로 튜플의 모든 값을 추출하여 변수 또는 상수에 할당 let myTuple = (10, 12.1, "Hi") ////과제 : myTuple의 자료형 let (..
오늘은 저번 시간에 이어서 테이블 뷰 만드는 실습을 이어하고 다음주에 볼 시험을 공지하셧다. 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..