일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dispatchsource
- 클로저의 캡슐화
- addannotation
- xcode로 날씨앱 만들기
- Timer
- 러닝기록앱
- MKMapViewDelegate
- UICollectionViewFlowLayout
- MKMapItem
- 단일 책임원칙
- font book
- CoreLocation
- 한국어 개인정보처리방침
- 영문 개인정보처리방침
- Startign Assignments
- AnyObject
- RunningTimer
- App Store Connect
- Protocol
- UIAlertAction
- CLLocationManagerDelegate
- 러닝타이머
- WeatherManager
- 서체관리자
- Xcode
- weatherKit
- swift
- SwiftUI Boolean 값
- weak var
- Required Reason API
- Today
- Total
목록Xcode Study (162)
VesselWheel
import UIKit // Overflow Operators // Int8 : -128 ~ 127 : -(2**7) ~ 2**7 - 1 // Int16 : -(2 ** 15) ~ 2 ** 15 - 1 Int8.min Int8.max // Arithmetic operation '127 + 1' (on type 'Int8') results in an overflow // 지정한 type 을 넘어서는 값을 할당하려면 컴파일에러 발생함 // let num1: Int8 = Int8.max + 1 // Swift 는 기본적으로 overflow 연산을 허용하지 않음 // overflow 연산자를 사용하면 overflow 연산을 할 수 있음 let num1: Int8 = Int8.max // overflow 연산 /..
import UIKit // Type // typealias 타입별칭 = 원래타입 let latitude: Double = 45.68 let longitude: Double = 87.21 type(of: latitude) type(of: longitude) typealias Coordinate = Double let lat: Coordinate = 12.34 let lon: Coordinate = 56.78 type(of: lat) type(of: lon) // 연산자 : operator // 일항(unary)연산자 // 이항(binary)연산자 // 삼항(ternary)연산자 // ㄴ 값1 ? 값2 : 값3 // 연산자 우선순위 // 산술연산자 -> 비교연산자 -> 논리연산자 // 연산의 방향 : 왼쪽..
import UIKit // Type Conversion // ㄴ 메모리에 저장된 값 자체를 형변환함 // Type Casting //. ㄴ 메모리에 저장된 값은 형변환하지 않고 // compiler 가 다른 형식으로 처리하게 함 // 형변환 형식 : 타입(값) let num1 = 1234 let num2 = 12.34 // 두 변수의 type 을 같게 해야 오류가 발생하지 않음 print(Double(num1) + num2) print(num1 + Int(num2)) // Int8(정수) : Int8 type 에서 // 저장할 수 없는 크기인 경우, // Int8보다 큰 type 으로 conversion // 해야 됨 let num3 = Int16(num1) // 123 은 Int8 type으로 // ..
import UIKit // Type Safety // 적절한 type 으로 값을 처리하기 위해서 // type을 엄격하게 지킴 // 지정한 type에 맞는 값만 할당해야 함 // let str1: String = 123 let str1: String = "123" // Int type 변수에 실수를 할당하지 못함 // let num1: Int = 3.14 // num2 나 num3 나 모두 Int type // 이지만 값을 저장하는 공간의 크기가 달라서 num2 를 num3에 할당하지 못함 let num2 = 23 type(of: num2) // let num3: Int8 = num2 let num4 = 12 let num5 = 23.45 // Int type과 Double type을 // 같이 연산하..
import UIKit // type 추론(inference) let number = 21 print(type(of: number)) let numberF = 12.34 print(type(of: numberF)) let str1 = "IOS" print(type(of: str1)) let b1 = true let b2 = false type(of: b1) type(of: b2) // 할당된 값이 없으면 타입추론을 못함 // let value /** let 변수: 타입 = 값 타입을 명시한 경우에는 초기화하지 않아도 변수를 메모리에 올림 let 변수: 타입 */ // 타입지정 + 초기화 let num: Int = 1234 // 타입지정해서 변수 선언함 let num2: Int // Type annotat..
import UIKit var greeting = "Hello, playground" /* Bool(ean) Type (논리자료형) true, false True, False TRUE, FALSE */ let valid = true print("valid 의 type :",type(of:valid)) // FLASE 처럼 대문자로 쓰면 // bool type 값(false, true)으로 인식하지 않고 // 변수 인식해서 오류가 발생함.
import UIKit var greeting = "Hello, playground" /* Float Type ㄴ Floating Point Float (4 byte) Double (8 byte) 실수 자료형은 정수 부분과 소숫점 아래 부분을 모두 표현하는 자료형임 실수 자료형은 data 를 저장할 때 부호비트 + 지수부 + 가수부 로 나누어서 메모리 공간을 나누어서 저장(관리)함 Float Type 은 4 byte 라서 Int64 Type 보다 사용하는 메모리의 크기를 작으나 메모리 공간을 더 세분해서 data 를 저장하므로 data 를 표현하는 가짓수가 더 많아서 Int64 Type 보다 Float Type 을 더 큰 자료형으로 인식함 */ // 실수를 표현하는 기본자료형은 Double Type 임 ..
import UIKit var greeting = "Hello, playground" /* Int(Integer) Type Int8 : 8bit - 1byte Int16 : 16bit - 2byte Int32 : 32bit - 4byte Int64 : 64bit - 8byte */ Int8.min Int8.max Int16.min Int16.max Int32.min Int32.max Int64.min Int64.max // Int8 type 의 data 를 저장할 때 필요한 byte 수 MemoryLayout.size MemoryLayout.size MemoryLayout.size MemoryLayout.size /* Signed / Unsigned (음수,양수). (양수만) */ UInt8.min UI..
/* data type 자료. 형태(형식).
import UIKit var greeting = "Hello, playground" /* Naming Convention Swift 에서는 Camel Case 사용함 이를 어겨도 오류가 발생하지는 않으나 이를 지키는 것이 가독성이 높아짐 대문자로 시작 : 클래스 / 구조체 / Enumeration / Extension / Protocol 소문자로 시작 : 변수(상수) / 함수(메소드) / Property(변수) / Parameter(변수) - 고려해야 할 내용 모두 대문자로 작성 : 상수(Constant) let HEIGHT 두 가지 이상의 단어를 연결해서 만드는 경우 각 단어의 구분을 쉽게 하기 위해서 두 번째 이후 단어는 첫 글자만 대문자로 함 학생이름이라는 의미의 변수 student + name ..
import UIKit var greeting = "Hello, playground" var name = "swift" var year = 2023 var valid = false var number1 = 10, number2 = 20, number3 = 30 name print("name : " + name) name = "ios" print("name : " + name) // 변수 앞에 var, let 등의 키워드를 붙여주지 않으면 이미 선언되어 있는 변수를 사용한다는 의미 name = "playground" // 변수 앞에 var, let 등의 키워드를 붙이면 새로운 변수를 메모리에 올린다는 의미 var age = 10 // 동일한 scope 에서 // var, let 등의 키워드를 사용해서 같은..
Day01-ex01 // 한 줄 주석(comment) /* 여기는 여러 줄 주석입니다 */