SwiftSimpleMemo
1.0.0
Simple memo app with UIKit & SwiftUI
데이터 갱신
viewWillAppear - iOS13부터 default로 지원하는 sheet 형태에서는 viewWillAppear를 사용할 수 없음Notification (Observer pattern)Storyboard에서 constraint를 주지 않은 곳이 있으면 빨간색 라인이 뜬다
Core Data
단말기 내부에 데이터를 보존, 캐싱하는 프레임워크
UI 블락을 일으키는 테스크들을 백그라운드에서 실행하도록 할 수 있음
뷰(테이블뷰, 콜렉션뷰등)와 데이터간의 싱크를 맞추는 것에 도움을 줌
DB 관리가 따로 필요 없이 데이터 CRUD를 쉽게 해주고 버전 관리에 용이
Core Data Stack
NSPersistentContainer model, context, coordinator를 모두 가진 하나의 클래스Delegate
Escaping Closure (Swift)
self를 탈출 클로저에서 참조하는 경우 self를 명시적으로 표시하거나 캡쳐 리스트에 포함시켜야 한다. 또한 탈출 클로저의 경우 강한 참조에 의한 메모리 릭이 발생하지 않도록 weak reference를 사용하여 캡쳐 리스트에 포함시켜야한다.강한 참조 사이클 (Swift)
2개 이상의 인스턴스 간의 강한 참조에 의해 변수를 nil로 선언하여도 ARC가 0으로 되지 않아 할당 해제가 되지 않고 메모리 누수가 발생하는 현상
해결 방법
약한 참조 사용
weak 키워드를 선언 전에 위치시킨 변수 또는 프로퍼티에 할당된 인스턴스는 약한 참조를 하고 있기 때문에 해당 인스턴스를 강하게 참조하는 변수를 nil로 선언하였을 때 ARC가 참조된 인스턴스를 처리하는 것을 중지 하지 않고 할당 해제될 수 있도록 한다.
미소유 참조 사용
weak reference와 다르게 참조하고 있는 인스턴스의 수명보다 같거나 긴 경우에 사용된다. 약한 참조와 달리 항상 값을 참조하고 있는 상태로 예상될 때 사용된다.