일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 커스텀 뷰
- boostcamp
- Tistory
- Swift
- notion
- Opensource
- IOS
- Cocoa Internals
- 후기
- 알고리즘
- development
- 코코아 인터널스
- 부스트캠프
- rxswift
- 네이버 부캠
- 개발
- 부트캠프
- SwiftUI
- 단위 테스트
- World
- Algorithm
- 디자인패턴
- WWDC
- OS
- Design Pattern
- Hello
- Today
- Total
목록Swift (11)
꿈돌이랜드
GCDGrand Central Dispatch(GCD)예전에는 프로세서의 클럭 속도를 높이는 방식으로 연산 속도를 높였지만 전력 소비와 프로세서의 클럭 속도 증가에 한계가 있어 멀티 코어 프로세싱이 탄생하게 되었고 이러한 프로세싱에서는 멀티 프로세스에게 어떻게 프로그램의 동작을 배분하는지 중요해졌다.GCD 이전에는 멀티 스레딩을 위해 Thread와 OperationQueue 등의 클래스를 사용했지만, 스레드는 이런 저런 이유로 복잡하고 관리하기가 까다롭고, OperationQueue는 GCD에 비해 무겁고 BoilerPlate 코드들이 많이 필요했다.GCD는 애플에서 개발한 기술로 스레드 관리와 실행에 대한 책임을 어플리케이션 레벨에서 운영체제 레벨로 전가시켰다. 작업단위는 Block(스위프트에서는 클로..
3.1.1 수동 참조 계산 방식과 비교ARC를 사용해서 자동으로 메모리를 관리한다고 해서 2장에서 설명한 참조 계산 방식이 다른 방식으로 새롭게 바뀐 것은 아니다.…중략ARC에서도 여전히 객체마다 참조 횟수가 있고, 객체 소유권에 대한 동일한 규칙을 기준으로 참조 계산을 진행한다. 수동 참조 계산 방식은 객체 소유권에 대한 동일한 규칙을 기준으로 참조 계산을 진행한다. 수동 참조 계산 방식은 객체를 생성하면서 소유권을 가지며, 특정 객체를 참조하기 전에 소유권을 요청하고 참조한 이후에는 소유권을 반환한다. ARC에서도 참조 계산을 위한 규칙과 방식을 그대로 적용한다. 시간 흐름 →MRC: alloc → init → doAction → retain → copy → release → release → dea..
스위프트에서 리스트를 뒤집는 것은 Swift Standard Library의 .reversed() 를 활용할 수 있다. 놀랍게도 이 메서드는 시간복잡도가 O(1)이다. 왜냐하면 이건 lazy이고, 원래 컬렉션을 거꾸로 뒤집는 뷰를 생성하기만 하기 때문이다. 정확히 말하자면 ReverseCollection이라는 래핑객체를 반환한다. 따라서 우리는 O(n) 시간 복잡도로 리스트를 순회할 수 있게된다. 하지만 이것을 인덱스로 접근하면 O(1)이라는 시간복잡도를 잃게된다. let arr = [1, 2, 3, 4] let i = arr.reversed()[1] // lose O(1) efficiency. 먼저 알아둘 것은, reversed() 메서드는 구체적으로 다음 두가지 정의 중에 선택하여 오버로드 된다는 점..