일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- viewcontroller
- uikit
- 트레일링 클로저
- OperationQueue
- property wrapper
- 연산 프로퍼티
- IBOutlet
- firebase
- weak
- ios
- entrypoint
- for-in
- userdefaults
- SWiFT
- Understanding Swift Performance
- 진입점
- UIButton
- 동시성프로그래밍
- TableView
- AppTransportSecurity
- WWDC16
- Remot Push
- 후행 클로저
- CoreLocation
- RunLoop
- Choosing Between Structures and Classes
- 원격 푸시
- IBOutletCollection
- DispatchQueue
- tableViewCell
- Today
- Total
목록분류 전체보기 (72)
iOS 공부하는 감자
예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 제한사항 d는 부서별로 신청한 금액이..
프로퍼티 클래스, 구조체, 열거형 등에 관련된 값 프로퍼티 종류 저장 프로퍼티 연산 프로퍼티 타입 프로퍼티 저장 프로퍼티 클래스와 구조체에서 값을 저장하기 위해 선언되는 변수/상수 클래스와 구조체의 인스턴스가 생성되는 시점에 모든 프로퍼티는 초기화된다. (프로퍼티가 옵셔널이 아니라면 모두 값이 들어감) // 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: ..
크레인 인형뽑기 게임 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게..
연산자 특정한 문자로 표현된 함수 특정 연산자의 역할을 프로그래머의 의도대로 변경도 가능 연산자의 종류 할당 연산자 값을 할당할 때 사용 ( = ) 산술 연산자 일반적인 수학 기호 ( +, -, *, /, % 등 ) 나머지를 구하는 % 연산자는 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..
K번째수 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. ar..
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..