반응형
데이터베이스에서 그랬듯 Coredata에서도 조건을 주어 원하는대로 데이터를 가져올 수 있다. 또한 정렬순서도 결정할 수 있다.
조건을 줄 때는 NSPredicate
객체를, 정렬을 할 때는 NSSortDescriptor
를 사용한다.
NSPredicate
어떻게 데이터를 필터링하고 불러올지를 결정하는 객체이다. SQL에서 쿼리문을 날리는 것과 비슷하게 쿼리문을 작성하고 요청할 수 있다.
let predicate = NSPredicate(format: "title CONTAINS %@", searchText)
request.predicate = predicate
- NSPredicate의 쿼리문을 작성하고, 거기에 넣어줄 값이 필요하다면 뒤에 작성한다.
- 위는 NSPredicate의 예시이다. title attribute에 searchText가 포함된 데이터만을 반환하도록 한다.
- 이를 request의 predicate에 넣어주고 요청을 날리면 된다.
- 자세한 문법은 아래 사이트를 참고하자.
- 치트시트
- 참고사이트
NSCompundPredicate
NSCompundPredicate로 여러 NSPredicate 객체를 하나로 합칠 수 있다.
NSSortDescriptor
NSSortDescriptor는 정렬순서에 대한 정의를 할 수 있는 객체이다.
let sortDescriptor = NSSortDescriptor(key: "title", ascending: true)
request.sortDescriptors = [sortDescriptor]
- 정렬을 할 attribute의 이름을 key값으로 주고, 오름차순인지 내림차순인지 적어준다.
- 위는 NSSortDescriptor의 예시이다. title을 기준으로 오름차순으로 정렬된 데이터를 반환하도록 한다.
- 이를 request의 sortDescriptors에 넣어주고 요청을 날리면 된다.
- predicate와 다르게 값을 여러개 받을 수도 있다.
반응형
'🍎 Apple > SwiftData & CoreData' 카테고리의 다른 글
[SwiftData] Meet SwiftData (0) | 2023.07.29 |
---|---|
[SwiftData] 기본설명 및 특징 (0) | 2023.07.29 |
[Core Data] Core Data Stack (1) | 2022.06.09 |
[CoreData] 기초개념 (3): Entity Relationship (0) | 2022.01.03 |
[CoreData] 기초개념 (1): Entity, CRUD (0) | 2022.01.01 |