일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- unowned
- CustomStringConvertible
- AVFoundation
- NSAttributedString
- uicollectionview
- UIBezierPath
- UIDynamicAnimator
- Stanford cs193p
- rxswift
- MVP
- 에어팟
- IOS
- Hashable
- UIDocumentBrowserViewController
- PhotoKit
- Arc
- Codable
- 오늘의성취도
- Swift
- UIGestureRecognizer
- reactivex
- Equatable
- CoreGraphics
- Singleton Design Pattern
- weak
- JSONDecoder
- JSONEncoder
- UIDocument
- Git
- Observable
- Today
- Total
목록Swift + iOS/Swift (4)
아직은 개린이
Swift의 ARC는 레퍼런스 카운트를 관리하여 메모리 누수를 방지하는 역할을 한다. 이 때, 인스턴스끼리 강한 순환 참조 문제를 해결하는 두가지 방법이 있는데 이에 대해 알아보고자 한다. 클래스 인스턴스의 강한 순환 참조를 해결할 수 있는 방법은 weak reference와 unowned reference를 쓰는 것이다. weak와 unowned는 strong 참조와 달리 레퍼런스 카운트를 세지 않는다. Weak References Weak Reference(약한 참조)는 참조하는 인스턴스를 강하게 유지하지 않는 참조이다. 다른 인스턴스의 수명이 짧을 때 사용한다. 참조하는 인스턴스를 강하게 유지하지 않기 때문에 약한 참조를 하는 동안 해당 인스턴스가 할당 해제될 수 있다. 할당 해제가 되면 ARC는 ..
ARC(Automatic Reference Counting) iOS는 앱의 메모리 사용을 추적, 관리하기 위해 ARC 기능을 사용한다. ARC는 Automatic Reference Counting의 줄임말로 참조 메모리 관리를 자동으로 해주는 기능을 뜻한다. 인스턴스가 참조되거나 참조해제될 때 횟수를 카운팅하고, 횟수가 0이 되면 인스턴스를 메모리에서 해제하는 방식으로 수행된다. How ARC Works 클래스가 새로운 인스턴스를 생성할 때, ARC는 인스턴스에 대한 정보를 저장할 메모리 청크를 할당한다. 할당한 메모리 청크에는 인스턴스의 타입에 대한 정보, 인스턴스와 관련된 프로퍼티 값 등을 저장해둔다. 더이상 인스턴스가 필요하지 않게 되면 자동으로 메모리에서 비우는 방식으로 메모리를 관리한다. 하지만..
애플 공식 문서에 보면, CustomStringConvertible은 텍스트적인 표현을 커스터마이즈하는 타입이라고 적혀있다. 공식 문서에 나온 예시를 보면, CustomStringConvertible 프로토콜을 정의하지 않고, 그냥 구조체를 출력하면 기본 표현으로 출력한다. struct Point { let x: Int, let y: Int } let p = Point(x: 21, y: 30) print(p) // Prints "Point(x: 21, y: 30)" 하지만, CustomStringConvertible 프로토콜을 정의하면, 사용자가 정의한 형태로 출력이 되는 것을 확인할 수 있다. extension Point: CustomStringConvertible { var description: S..
Swift에는 lazy라는 키워드가 있다. Swift Programming Guide에 보면, Properties 부분에서 lazy stored properties라는 것이 나온다. A lazy stored property is a property whose initial value is not calculated until the first time it is used. You indicate a lazy stored property by writing the lazy modifier before its declaration. 즉, 처음 사용되기 전까지 초기값이 계산되지 않는 프로퍼티이다. 이게 어떤 때에 쓰이는 것일까? Lazy properties are useful when the initial v..