이중옵셔널에 대하여 – Swift

Swift의 캐스팅 연산자인 as? 는 T 타입으로 캐스팅에 실행할 가능성을 내포하기 때문에 T? 타입을 만들게 된다. 이 때 변환하려는 값이 이미 옵셔널타입인 경우에는 nil이 아니면 T 타입으로 간주하여 최종 결과는 T??가 아닌 T?가 된다. var a: Any? = 8 if let x = a as? Int { // a는 Any?이면서 그 값이 Int 형으로 변환될

오일러 프로젝트 69

오일러 프로젝트 69 번 문제는 오일러의 피(phi)함수에 관한 내용이다. 사실 소인수분해를 빠르게 할 수 있는 방법만 있다면, 오일러 피함수 역시 간단하게 구현할 수 있으나, 여기서는 범위가 1,000,000까지이므로 만만한 문제가 아닐 수 있다. 그런데 문제를 잘 파악해보면 의외로 쉬운 문제이기도 하다.

iOS에서 사용할 수 있는 애니메이션 구현 기법들에 대한 정리

애니메이션 구현 방법 iOS의 애니메이션 구현은 크게 두 가지로 나눌 수 있는데 하나는 UIKit의 애니메이션 API를 사용하는 것이고, 다른 하나는 코어 애니메이션을 사용하는 것이다. 오늘은 각각의 세부적인 구현보다는 각각의 API의 차이와 기본적인 사용방법에 대해서 살펴보도록 하겠다.

flex활용

flex-box 활용법 플렉스박스 레이아웃을 구성하는 요소는 컨테이너와 개별 아이템으로 나뉘어지며, 각각의 요소에 대해서 주로 적용하는 속성은 다음과 같다. 컨테이너 컨테이너는 우선 다음 항목을 적용한다. .container { display: flex; } 컨테이너 내부 아이템은 자신이 얼마나 늘어나고 줄어들 것인지를 결정한다. .item { flex: 1 0 auto; } 단일 요소의 가운대 배치 가로 방향으로 이어지는 단일 요소를 가운데로