방법 1 (박스오피스 앱) func getData() { // 1. URL 만들기 guard let url = URL(string: movieURL) else { return } // 2. URLSession 만들기 let session = URLSession(configuration: .default) // 3. URLSession 인스턴스에게 task 주기 let task = session.dataTask(with: url) { (data, response, error) in if error != nil { print(error!) return } guard let JSONdata = data else { return } let decoder = JSONDecoder() do { let decoded..

데이터 모델 Weather.swift // Weather.swift import Foundation struct WeatherResponse: Decodable { let weather: [Weather] let main: Main let name: String } struct Main: Decodable { let temp: Double let temp_min: Double let temp_max: Double } struct Weather: Decodable { let id: Int let main: String let description: String let icon: String } API 호출하고 리턴 받기 WeatherService.swift : 요청을 주고 결과 받기 // WeatherSe..

API 날씨 OpenAPI 발급 주소 https://openweathermap.org/ Сurrent weather and forecast - OpenWeatherMap Access current weather data for any location on Earth including over 200,000 cities! The data is frequently updated based on the global and local weather models, satellites, radars and a vast network of weather stations. how to obtain APIs (subscriptions w openweathermap.org API 호출 (도시이름으로 호출) api.open..
연산자 띄어쓰기와 연산자 스위프트에서는 띄어쓰기도 중요한 문법이다. 연산자가 어디에 위치하느냐도 중요하지만, 연산자 앞과 뒤 중 어디에 공백이 있는지도 중요한 부분 ex) A != B와 A! = B는 전혀 다른 의미 스위프트는 서로 다른 자료형끼리의 연산을 엄격히 제한한다. 서로 다른 자료형끼리의 연산을 실행하려면 값을 해당 타입으로 변환한 후 연산해야 한다. 비교 연산자 ==, === A == B : A와 B가 같은 값인지 비교하여 불리언 값을 반환 A === B : A와 B가 참조(레퍼런스) 타입일 때 A와 B가 같은 인스턴스를 가리키는지 비교하연 불리언 값을 반환 스위프트의 유일한 참조타입인 클래스의 인스턴스에서만 참조 비교 연산자를 사용 가능하다. 스위프트의 기본 데이터 타입은 모두 구조체로 구현..
타입 별칭 사용자가 임의로 만든 데이터 타입이든 이미 존재하는 데이터 타입에 임의로 다른 이름을 부여할 수 있다. typealias MyInt = Int typealias MyDouble = Double let age: MyInt = 24 let percentage: MyDouble = 25.5 튜플 타입의 이름이 따로 지정되어 있지 않은, 프로그래머 마음대로 만드는 타입. 지정된 데이터의 묶음 // String, Int, Double 타입을 갖는 튜플 var person: (String, Int, Double) = ("SDY", 100, 55.5) // 인덱스를 통해서 값을 빼 올 수 있다. print("이름: \(person.0), 나이: \(person.1), 몸무게: \(person.2)") //..
데이터 타입 데이터의 종류 스위프트의 기본 데이터 타입이 모두 구조체를 기반으로 구현되어 있음 Int, UInt Int : +, - 부호를 포함한 정수 UInt : - 부호를 포함하지 않는 0을 포함한 양의 정수 진수에 따른 정수 표현 방법 2진수 : 접두어 0b를 사용하여 표현 8진수 : 접두어 0o를 사용하여 표현 16진수 : 접두어 0x를 사용하여 표현 임의의 수 random(in:) Int.random(in: -100...100) UInt.random(in: 1...30) Double.random(in: 1.5...4.3) Float.random(in: -0.5...1.5) String // 이니셜라이저를 사용하여 빈 문자열을 생성할 수 있음 var hello: String = String() /..
print() 함수 디버깅 콘솔에 간략한 정보를 출력 출력하려는 인스턴스의 description 프로퍼티에 해당하는 내용을 출력 dump() 함수 자세한 정보를 출력 출력하려는 인스턴스의 자세한 내부 콘텐츠까지 출력 변수, 상수 타입 추론 : 변수를 생성할 때 데이터 타입을 생략하면 컴파일러가 변숫값의 타입을 추론하여 타입을 지정 var name = "bcd" print(type(of:name)) //String var height = 166.6 print(type(of:height)) //Double [출처 : Swift 프로그래밍 야곰]
용어 커링 기법 : 여러 개의 매개변수를 갖는 함수를 매개변수 하나를 갖는 함수의 나열로 표현 func sum(first: Int) -> ((Int)->Int) { return {second in first + second} } sum(first: 10)(5) 인터프리터 언어 : 실행전에 기계어로의 컴파일 과정을 거치지 않으며, 소스코드가 해석기(인터프리터)에 의해 직접 해석되어 실행되도록 구현된 언어 REPL : 간단한 코드를 직접 입력하여 바로바로 결과를 볼 수 있는 환경과 편의를 제공해주는 도구 [출처 : Swift 프로그래밍 야곰]
Comment