iOS 화면 전환 방법은 다음과 같이 4가지가 존재합니다. 뷰 컨트롤러의 뷰 위에 다른 뷰를 가져와 바꿔치기 뷰 컨트롤러에서 다른 뷰 컨트롤러를 호출 네비게이션 컨트롤러를 사용하여 화면 전환 화면 전환용 객체 세그웨이를 사용하여 화면 전환 1. 뷰 컨트롤러의 뷰 위에 다른 뷰를 가져와 바꿔치기 이 방법은 사용하지 않는 것이 좋습니다. 하나의 컨트롤러에 두 개의 루트 뷰를 두고 상황에 따라 뷰를 바꿔치기 하는 것인데 메모리 상 문제가 있습니다. 2. 뷰 컨트롤러에서 다른 뷰 컨트롤러를 호출 뷰 컨트롤러에서 이동할 대상 뷰 컨트롤러를 직접 호출하는 방식입니다. 간단한 예로 살펴보겠습니다. (1) 다음과 같이 두 화면을 구성하고 두번째 뷰 컨트롤러를 선택한 뒤 오른쪽 Identity Inspector 의 Id..
새로운 OS Version 이 출시되면 새로운 기능을 개발하는데 필요한 API 가 추가됩니다. 매년 열리는 WWDC 는 이런 API 들을 소개하고 데모를 보여주는 자리입니다. 앱을 개발할 때마다 최신 버전을 사용하면 좋겠지만 현실에서는 불가능합니다. Availability Condition 은 특정 API 를 사용할 수 있는 OS 와 Version 을 확인해서 코드를 에러 없이 실행할 수 있도록 하는 조건입니다. 문법은 다음과 같습니다. if #available(OS Version, OS Version, *) { } else { } while #available(OS Version, *) { } guard #avaliable(OS Version, *) else { return } Availability ..
1. Error Handling 보통 에러가 발생하면 프로그램이 강제로 종료되지만, 발생 가능한 에러를 직접 처리하면 강제 종료 없이 계속 프로그램을 실행할 수 있습니다. 에러는 크게 Compile Time Error 와 Runtime Error 로 구분합니다. Compile Time Error 는 대부분 문법과 관련 있습니다. Compiler 가 제공하는 정보를 통해 비교적 쉽게 수정할 수 있고, Fix it 으로 수정하는 것도 가능합니다. Runtime Error 는 프로그램이 실행되는 동안 발생합니다. 문법적 에러가 아니더라고 디바이스나 리소스 상태에 따라서 에러가 발생할 수 있습니다. 보통 Runtime Error 가 발생하면 프로그램이 강제로 종료됩니다. 하지만 발생 가능한 에러를 미리 처리해두..
1. Generic Function Generic 을 활용하면 형식에 의존하지 않는 범용 코드를 작성할 수 있고, 코드의 재사용성과 유지보수의 편의성이 높아진다는 장점이 있습니다. 코드에는 두 개의 값을 교차하는 코드가 작성되어 있습니다. func swapInteger(lhs: inout Int, rhs: inout Int) { let tmp = lhs lhs = rhs rhs = tmp } var a = 10 var b = 20 swapInteger(lhs: &a, rhs: &b) a // 20 b // 10 위 함수는 Int 형식의 두 정수를 교체할 때는 문제없이 동작합니다. 하지만 a, b 두 변수가 Int 가 아니라면 컴파일 에러가 발생합니다. 파라미터의 형식으로 지정된 Int 외에 다른 형식은 ..
1. Memory Basics 메모리를 가장 단순하게 이야기하면 0과 1을 저장할 수 있는 반도체입니다. 메모리는 전압 차이를 이용해서 데이터를 저장합니다. 전기가 들어오면 1이 저장되고 전기가 들어오지 않으면 0이 저장됩니다. 0이나 1이 들어가는 가장 작은 공간을 Bit 라고 합니다. 여기에 들어가는 모든 데이터는 종류에 상관 없이 2진수로 변환되어 저장됩니다. Bit 는 컴퓨터 공학에서 정보의 기본 단위로 사용되고 있습니다. 프로그래밍에서는 8개의 Bit 가 모인 Byte 를 기본 단위로 사용합니다. 1byte 에는 256개의 Binary 패턴이 있습니다. 양수만 저장한다고 생각하면 저장할 수 있는 값의 범위는 0부터 255 사이입니다. 양수와 음수를 모두 저장하는 경우에는 -128에서 127까지의..
- Total
- Today
- Yesterday
- 순열
- BFS
- programmers
- Baekjoon
- map
- Dynamic Programming
- search
- CodeCommit
- spring
- 수학
- java
- CodePipeline
- permutation
- ECR
- cloudfront
- 소수
- 프로그래머스
- ionic
- 에라토스테네스의 체
- Combination
- SWIFT
- string
- sort
- EC2
- DFS
- CodeDeploy
- AWS
- 조합
- Algorithm
- array
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |