티스토리 뷰
안녕하세요 밀쿄입니다:)
첫 번쨰 포스트 이후 수많은 업로드 시도를 했으나..필력에 막혀서 쿨럭...
오늘은 필력은 해결할 수 없단 결론 끝에 첫번쨰 주제를 들고 왔습니다.
바로 Core Data입니다..
제가 첫 번째 앱 만들면서 이해하는데 꽤 고생했던 녀석입니다.. 하하..
현재도 공부 진행 중이구요..
그럼 거두절미하고 본론으로 들어가겠습니다.
스위프트엔 데이터를 영구적으로 저장하는 방법이 여러가지 있습니다.
CoreData는 그 중 하나인데요.
일단 애플 공식문서를 보도록 하겠습니다.( https://developer.apple.com/documentation/coredata )
이 영어만 보면 뭔지 모르겠네요. 제가 해석하기엔 단일 기기에서 데이터를 보존하거나 캐싱 그리고 실행취소를 지원한다..
뭐...틀린 해석같은데... 일단 넘어가겠습니다. ㅋㅋㅋㅋㅋㅋㅋ
세 개가 있네요.
전 일단 첫번째꺼는 스킵하고 두번째꺼부터 보도록하겠습니다.
스킵하는 이유는 저거는 그냥 따라하시면 됩니다... 제가 설명할게 없습니다.
이제 이 다음부터 적을게 많아집니다(필력이 딸리기 시작합...)
두번째 문서랑 세번째 문서에 보면 공통적인 그림이 하나 나옵니다.
설명에 의하면 NSPersistentContainer에서 저 세 개를 한번에 셋업해주는 것 같네요.
+ 최초 생성시 Appdelegate에서 만들어주는 것 같네요..
그치만 저는 혼자서 다 만들어보겠습니다.
먼저 Model 부터 만들어주기전에 Model이 무엇인지 알아봅시다.
Model은 간단히 생각하면 .xcdatamodeld file을 프로그래밍으로 표현한 겁니다.
Model을 만드는 방법은 문서를 보면 많이 보이지만 전 URL로 초기화하는 방법을 택하겠습니다.
forResource에는 xcdatamodeld 확장자를 가진 파일명을 적어주면 됩니다.
momd는 xcdatamodeld가 컴파일된 후의 확장자라고 하네요.
그 다음은 코디네이터에 대해서 알아보겠습니다.
코디네이터는 Context와 영구저장소의 커뮤니케이션을 돕는다고 하네요.
더 자세히 알아보겠습니다.
NSManagedObjectContext의 인스턴스는 코디네이터를 사용하여 개체 그래프를 Core Data에 저장하고 모델 정보를 검색합니다. 라고 되어있네요.. 더불어서 이 코디네이터가 없는 NSManagedObjectContext는 영구 저장소에 접근할 수 없다라고 하니까..
쉽게 말하면 NSManagedObjectContext와 직접 데이터를 주고 받으면서 영구 저장소들의 접근 조정, 해당 저장소에 대한 실제 입출력을 담당하는 것 같네요.
코디네이터는
이렇게 초기화 하네요. 그대로 해보겠습니다.
짜잔! 이렇게 작성하시면 됩니다.
일단 첫 줄은 위에 말씀드린 것처럼 코디네이터를 초기화하는 부분입니다.
그리고 대망의 Context 입니다.
아마도 문서를 읽고오신 분은 알겠지만.. 적혀 있는 말들이 완전히 이해되지는 않을껍니다..
저도 그렇구요..
그냥 만들어보겠습니다...
혹시라도 알고싶은 분을 위해서 링크 달아두겠습니다 ( https://developer.apple.com/documentation/coredata/nsmanagedobjectcontext )
첫 줄은 초기화해서 만들어주는 구문이고
두번째 줄은 코디네이터를 지정해주는 구문입니다.
이제 마지막으로 세 개를 한번에 셋업해주는 NSPersistentContainer를 만들어봅시다.
라고 했지만 Appdelegate에 있는걸 카피해옵시다...
카피성공!
손으로 하나하나 짜셔도 되지만 전 복사를 선택했습니다.
이제 Appdelegated에 Save를 복사해서 수정해줍니다.
이렇게 save도 만들고
AppDelegate도 수정해줍니다.
그리고 코어데이터는 매번 같은 값을 리턴 시키기 위해 싱글톤으로 만들어줍니다..
싱글톤은 이나 이걸 응용한 앱은 2탄에서 마저하겠습니다..
'Swift&IOS' 카테고리의 다른 글
[LeetCode: 01] Two Sum (0) | 2019.04.15 |
---|---|
Core Data(2) (0) | 2019.04.09 |
원형 프로그래스바 만들어보기 (2): 완성을 향해서... (0) | 2019.04.08 |
원형 프로그래스바 만들어보기 (1) : 원 그리기 (0) | 2019.04.05 |
Swift 싱글톤 (0) | 2019.04.02 |
- Total
- Today
- Yesterday
- ErrorHandling
- MVC
- 현업이그리운
- SwiftUI
- CombineLatest
- 자료구조
- programmers
- SEQUENCE
- 삨
- UIViewControllerRepresentable
- ios
- 스위프트유아이
- 텔큐온
- compactMap
- 유니온파인드
- 결합연산자
- Just
- 알고리즘
- replaceNil
- BBIK
- AutoLayout
- 스위프트
- iOSCombine
- swift
- 스택뷰
- Apple
- combine
- 스유
- Queue
- 콤바인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |