이번 글에서는 Swift 공식 문서의 22번째 단원인 Generics을 읽고 정리한 글을 쓰려고 한다. Apple Swift 공식 문서 22단원 - Generics Generics Generic(제네릭) 코드를 사용 하면 정의한 요구사항에 따라 모든 타입에서 작동할 수 있는 유연하고 재사용 가능한 함수와 타입을 작성할 수 있다. 이는 중복을 피하고 명확하고 추상적인 방식으로 코드를 작성할 수 있다. 제네릭은 Swift의가장 강력한 기능 중 하니이고 Swift 표준 라이브러리의 대부분은 제네릭 코드로 빌드된다. 사실 지금까지 작성한 모든 글에서 제네릭을 사용하고 있었다. 예를 들어 Swift의 Array,Dictionary 타입은 모두 제네릭 컬렉션이다. 즉 Array에 Int,String등 모든 타입을 ..
문제 링크 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. ..
문제 링크 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌..
안녕하세요! 이번 글에서는 저번글에 이어 사진 앱을 만들어볼 건데요, 이번에는 저번에 만든 사진 앱에서 조금 아쉬운 점을 수정해보려고 합니다. 저번에 구현한 화면을 보여드리며 이번에 수정할 아쉬운 점을 살펴보겠습니다! 이번에 수정할 아쉬운 점은 사진이 선택됐을 때 선택되었다는 것을 알 수 있게 이벤트를 주는 것과 휴지통 버튼이 아무것도 선택되지 않았을 때부터 활성화되어있는 것을 고쳐보도록 할게요. 우선 사진이 선택되었을 때 이벤트를 주는 작업부터 진행하겠습니다. 저희가 사용한 컬렉션 뷰의 델리게이트에는 셀이 선택되거나 선택 해제 되었을 때를 감지할 수 있는 메서드들이 있습니다. 이러한 메서드를 사용하여 다양한 작업을 할 수 있는데요, 이번에 할 작업들도 이를 활용하면 될 것 같습니다. 아 참고로 지금까지..
안녕하세요 ^~^ 이번 글에서는 저번 글에 이어 사진첩의 사진을 삭제해보려고 합니다. 물론 이번에도 스토리보드는 사용하지 않을 거예요. 우선 저번 글에서 구현한 마지막 모습을 보고 진행하도록 하겠습니다. 그럼 이제 여기서 사진을 삭제할 수 있도록 만들어볼까요? 우선 Photos 프레임워크에서 사진이 삭제되었다는 것을 알기 위해서는 PHPhotoLibraryChangeObserver 프로토콜을 채택해야 합니다. 근데 이렇게 하면 위의 사진처럼 오류가 발생하는데요 이는 추가한 프로토콜에 필요한 메서드를 정의하지 않았기 때문입니다. 이러한 메서드를 추가해주시면 추가한 프로토콜이 잘 작동됩니다. 참고로 추가한 메서드는 이름만 봐도 알 수 있지만 포토라이브러리의 변화를 관찰하는 옵저버입니다. 즉 이번에 저희가 사..
안녕하세요 Pingu 입니다! 🐧 이번 글에서는 Swift 공식 문서의 20번째 단원인 Extensions을 읽고 정리한 글을 쓰려고 합니다. Apple Swift 공식 문서 20단원 - Extensions Extensions Extensions(익스텐션)은 기존의 클래스, 구조체, 열거형, 프로토콜에 새로운 기능을 추가하는 기능입니다. 이는 실제로 해당 타입들이 정의된 코드에 접근할 수 없을 때에도 사용할 수 있어요. Swift의 익스텐션은 다음을 수행할 수 있습니다. 인스턴스의 계산 프로퍼티와 계산 타입 프로퍼티 추가 인스턴스 메서드와 타입 메서드 정의 새로운 생성자 제공 서브 스크립트 정의 새로운 중첩 타입 정의 기존 유형이 특정 프로토콜을 준수하도록 만들기 Swift에서는 프로토콜을 익스텐션 해서..
이번 글에서는 Swift 공식 문서의 19번째 단원인 Nested Types을 읽고 정리한 글을 쓰려고 한다. Apple Swift 공식 문서 19단원 - Nested Types Nested Types 열거형은 가끔 특정 클래스와 구조체의 기능을 지원하기 위해 생성된다. 이와 비슷하게 복잡한 타입의 클래스와 구조체를 사용할 때 그 안에서 모든 것을 구현하는 것이 편리할 수 있다. 즉 해당 블록 안에 또 다른 열거형, 클래스, 구조체를 중첩해서 정의할 수 있다는 말이다. 다른 타입 내에 타입을 중첩하려면 지원하는 타입의 외부 중괄호 안에 정의를 작성하면 된다. Nested Types in Action struct BlackjackCard { // nested Suit enumeration enum Suit..
이번 글에서는 Swift 공식 문서의 18번째 단원인 Type Casting을 읽고 정리한 글을 쓰려고 한다. Apple Swift 공식 문서 18단원 - Type Casting Type Casting 타입 캐스팅은 인스턴스의 타입을 확인하거나 어떠한 클래스의 인스턴스를 해당 클래스 계층 구조의 슈퍼 클래스나 서브 클래스로 취급하는 방법이다. Swift의 타입 캐스팅은 is, as 연산자로 구현된다. 이 두 연산자는 타입을 확인하거나 다른 타입으로 캐스트 하는 것을 간단한 표현으로 제공한다. 타입 캐스팅을 사용하여 프로토콜을 준수하는지 확인할 수도 있다. Defining a Class Hierarchy for Type Casting 클래스와 서브 클래스의 계층 구조와 함께 타입 캐스팅을 사용하여 특정 클..
- Total
- Today
- Yesterday
- document
- 알고리즘
- 테이블뷰
- 코테
- 자료구조
- operating
- Publisher
- Apple
- 앱개발
- OSTEP
- 문법
- operator
- IOS
- 프로그래밍
- BFS
- OS
- Xcode
- 스위프트
- design
- 동시성
- Combine
- 코딩테스트
- DP
- System
- Swift
- dfs
- pattern
- 아이폰
- mac
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |