일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- OperationQueue
- IBOutlet
- IBOutletCollection
- tableViewCell
- firebase
- TableView
- AppTransportSecurity
- userdefaults
- RunLoop
- ios
- SWiFT
- weak
- 원격 푸시
- property wrapper
- 트레일링 클로저
- viewcontroller
- Understanding Swift Performance
- 후행 클로저
- 연산 프로퍼티
- WWDC16
- entrypoint
- 동시성프로그래밍
- Remot Push
- CoreLocation
- UIButton
- uikit
- 진입점
- for-in
- DispatchQueue
- Choosing Between Structures and Classes
- Today
- Total
목록22 베이직 챌린지 (19)
iOS 공부하는 감자
메서드 함수 vs 메서드 함수 : 모듈 전체에서 전역적으로 사용하는 함수 메서드 : 클래스, 구조체, 열거형 등 특정 타입과 연관되어 사용되는 함수 메서드의 종류 인스턴스 메서드 : 인스턴스와 연관된 메서드 / 인스턴스가 생성되어야 호출이 가능하다. 타입 메서드 : 타입과 연관된 메서드 / 인스턴스 생성 유무와 관계없이 타입 자체를 사용하여 호출 가능하다. 인스턴스 메서드 타입 내부에서 다른 수식어 없이 func로 시작하는 메서드 인스턴스를 생성 후 .(dot)문법을 통해 호출 가능하다. 인스턴스 메서드에서 타입 이름에 .(dot)문법을 사용하면 타입 프로퍼티, 타입 메서드에 접근이 가능하다. struct Person { // 인스턴스 메서드 func sayHello() { print("Hello!!")..
프로퍼티 클래스, 구조체, 열거형 등에 관련된 값 프로퍼티 종류 저장 프로퍼티 연산 프로퍼티 타입 프로퍼티 저장 프로퍼티 클래스와 구조체에서 값을 저장하기 위해 선언되는 변수/상수 클래스와 구조체의 인스턴스가 생성되는 시점에 모든 프로퍼티는 초기화된다. (프로퍼티가 옵셔널이 아니라면 모두 값이 들어감) // name, age 모두 저장 프로퍼티 class PersonClass { let name: String = "dong" var age: Int = 25 } struct PersonStruct { let name: String = "Dong" var age: Int = 25 } 지연 저장 프로퍼티 : 프로퍼티가 호출되는 시점에 초기화되는 저장 프로퍼티 (인스턴스가 생성되어도 선언만 될뿐 초기화되지 않음..
클래스와 구조체 클래스와 구조체를 정의하는 것은 새로운 데이터 타입을 생성하는 것이다. 데이터 타입의 이름에는 대문자 카멜케이스를 사용하므로 클래스와 구조체의 이름 또한 대문자 카멜케이스로 정의해야 한다. 클래스와 구조체 내부의 프로퍼티와 메서드는 소문자 카멜케이스를 사용한다. 클래스나 구조체를 통해 생성된 인스턴스의 프로퍼티 또는 메서드에 접근하려면 인스턴스 이름에 점연산자를 사용하여 접근 가능하다. 클래스 (Class) 클래스끼리 상속이 가능하다. 클래스의 인스턴스는 참조 타입으로 해당 인스턴스를 상수(let)으로 선언해도 내부 프로퍼티 값을 변경할 수 있다. 클래스를 정의할 때 직접 이니셜라이저를 작성해야 한다. 디 이니셜라이저(deinit)를 사용하여 인스턴스가 소멸되기 직전에 실행할 작업을 작성..
함수 func 키워드를 사용하여 함수를 정의할 수 있다. 스위프트에서의 함수는 재정의(오버라이드), 중복 정의(오버로드)를 모두 지원한다. 스위프트에서 함수는 일급 객체로, 함수를 변수나 상수에 할당 가능하고 매개변수를 통해 전달도 가능하다. 매개변수(=parameter) : 함수를 정의할 때 외부로부터 받아들이는 전달 값의 이름 (=parameter) 전달인자(=argument) : 실제로 함수를 실행할 때 전달하는 값 전달인자 레이블 : 함수 외부에서 매개변수의 역할을 좀 더 명확하게 할 수 있다. func addNumber(a: Int, b: Int) -> Int { return a + b } print(addNumber(a: 3, b: 5)) // 8 매개변수 기본값 스위프트의 함수에서는 매개변수..
조건문 조건문의 종류 if-else switch if-else 조건절의 결과는 반드시 Bool 타입으로 참, 거짓을 나타내야 한다. 조건절을 순서대로 비교하고, 조건절이 true가 나오는 곳의 코드블럭을 실행한다. else를 작성하지 않아도 정상 작동한다. switch 하나의 case를 실행시키면 조건문이 종료된다. ( fallthrough 키워드를 통해 바로 다음의 case를 연속으로 실행시킬 수 있다. ) 비교할 값이 명확하게 한정적인 경우를 제외하면(ex-열거형) default를 작성해야 한다. 각 case에 범위 연산자 사용이 가능하다. case에 조건을 부여하고 싶다면 where절을 통해 부여할 수 있다. let someInt: Int = 101 switch someInt { case 100: ..
연산자 특정한 문자로 표현된 함수 특정 연산자의 역할을 프로그래머의 의도대로 변경도 가능 연산자의 종류 할당 연산자 값을 할당할 때 사용 ( = ) 산술 연산자 일반적인 수학 기호 ( +, -, *, /, % 등 ) 나머지를 구하는 % 연산자는 Int 자료형끼리만 사용 가능 비교 연산자 값을 비교할 때 사용 삼항 조건 연산자 조건식 ? A : B 조건식이 참이면 A, 거짓이면 B를 반환 범위 연산자 값(수)의 범위를 나타낼 때 사용 (반복문과 사용하기 좋음) 부울 연산자 !B : NOT(부정) 연산자 A && B : AND 연산자 A || B : OR 연산자 비트 연산자 값의 비트 논리 연산을 수행 복합 할당 연산자 할당 연산자 + 다른 연산자 다른 연산자가 수행한 연산 결과를 바로 할당함 오버플로 연산..
배열(Array) 배열의 특징 동일한 자료형만 저장 가능 배열 내부의 값은 순서가 있음 (index / zero based) 순서가 있는 값들을 저장할 때 유용 배열 선언방식 let someArray: [Int] let someArray2: Array 배열에 사용 가능한 메서드 1. 저장된 요소의 갯수 확인 : count 2. 배열이 비었는지 확인 : isEmpty 3. 배열 요소에 접근 let someArray: [Int] = [1, 2, 3] // 1. [index]로 접근 someArray[1] // 2 // 2. [index범위]로 접근 someArray[0...1] // [1, 2] // 3. first / last로 접근 someArray.first // Optional(1) someArray..
String 스위프트에서 문자열(String)은 다양한 관련 함수들을 사용할 수 있다. 기본 속성 문자열 길이 확인 : .count -> Int 특정 문자 포함되었는지 확인 : .contain() -> Bool 빈 문자열인지 확인 : isEmpty -> Bool 문자열 이어붙이기 + appending : 새로운 문자열을 생성 append : 기존 문자열에 내용 추가 // + 연산자 let aString: String = "Aa" let abString: String = aString + "Bb" // AaBb // appending - 새로운 문자열 생성 let hi: String = "Hi" let hiHello: String = hi.appending(" Hello") // Hi Hello // ap..
변수와 상수 / 기본 자료형 변수(var) : 차후에 내용이 변경 가능 상수(let) : 차후에 내용이 변경 불가능 실무에서는 상수(let)을 많이 사용한다. 변수(var)는 변경이 쉬워서 버그가 발생할 확률을 높이기 때문에 가능하면 상수를 주로 사용하고 변경이 필요할 때 키워드를 변경하여 사용하는 것이 좋다. 기본 자료형 Bool 참, 거짓을 표현 Int 64비트 정수를 표현 UInt 양의 정수를 표현 Float 32비트 부동소수점 표현 Double 64비트 부동소수점 표현 Character 한 문자를 표현 (유니코드) String 여러 문자를 표현 (유니코드) + 연산자를 사용하여 문자열을 합쳐줄 수 있음 swift는 데이터 타입에 엄격하기 때문에 다른 데이터 타입과 자료교환은 암시적으로 불가능 알고..