티스토리 뷰
Core Data
iOS에서 Database를 조금 더 손쉽게 사용할 수 있도록 하는 방법
SQLite를 직접적으로 사용하지 않은 상태에서 엑세스가 가능하게 해줍니다.
- NSPersistentStore
데이터를 저장하는 파일을 나타냅니다.
데이터가 저장되는 형식, 영구 저장소의 이름, 타입을 지정하여야 합니다.
방식으로는 SQLite, Binary, Memory 세가지가 존재하는데, NSPersistentStoreCoordinator에 add하여 주면 됩니다.
거의 SQLite를 사용합니다.
- NSPersistentStoreCoordinator
데이터가 저장되어 있는 파일과 앱이 사용하는 객체 모델 사이를 중개하는 역할을 합니다.
NSManagedObjectModel에서 정의된 모델을 이용하여 Coordinator를 만들어주고 이것에 Store를 연결하여서 데이터를 가져올수 있도록 합니다.
-> NSManagedObjectModel
객체 관리를 하여주는 모델이며, 데이터의 모델에 대한 정보를 가지고 있습니다.
Bundle의 파일에 존재를 하며 momd확장자를 가지게 됩니다.
처음에 프로젝트를 만들때 만들던가 아니면 추가를 하여서 만들면 되는데 xcode의 데이터 모델 편집기를 이용해서 생성하게 됩니다.
- NSManagedObjectContext
관리 객체를 말해줍니다.
우리가 Coordinator에서 가져온 정보를 가지고 직접적으로 파일에 접근할 필요가 없기 때문에 Context를 이용하여 접근을 하면 됩니다.
이곳에서는 add, insert, update, delete에 대한 부분들을 사용가능하며, 저수준의 Database를 접근하지 않아도 사용이 편리하게 사용이 가능합니다.
Database 연결하여 주는 방법. 즉 이것을 이용하여 CRUD를 한다고 보면 됩니다.
-> NSManagedObject
코어데이터상에서 실제 정보를 가지고 있는 객체를 의미합니다.
이것을 가지고 자신이 가져올 파일의 Data 구조를 만들어주고 가져올수 있게 됩니다.
extension된 파일안에 fetchRequest를 사용하여서 NSFetchRequest<?> 형태로 return하는 function을 만들고
- NSFetchResultsController
fetch 요청의 결과와 테이블 뷰를 손쉽게 연결하여 주는 역할을 한다.
'Mobile > iOS' 카테고리의 다른 글
Swift. @escaping, @autoclosure (0) | 2018.07.06 |
---|---|
Swift. inline function (0) | 2018.07.06 |
Swift. 접근 한정자 (0) | 2018.06.25 |
cocoapods. Library 등록 하기 (0) | 2018.06.25 |
Swift. reflection. (0) | 2018.06.24 |
- Total
- Today
- Yesterday
- docker
- windows10
- Xcode
- php
- git
- Gradle
- tomcat
- ubuntu
- Linux
- intellij
- centos8
- SWIFT
- golang
- MySQL
- Spring
- Java
- go
- github
- Codable
- nodejs
- war
- cocoapods
- enum
- Windows
- android
- ios
- CentOS
- Kotlin
- Python
- rxswift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |