본문 바로가기

개발/Swift

[Swift] 서치바 검색한 데이터만 불러오기 (CoreData)

NSPredicate를 사용하여 Request 필터링하기

NSFetchRequest를 이용하면 Request에서 원하는 데이터만 가져올 수 있다. 만약 검색창을 만든다고 하면 아래처럼 할 수 있습니다.


// Entity명 Item
// property명 title
// 예시 검색어 : 서울

// 서치바에 검색어 "서울"입력을 가정합니다.
let searchBar = UISearchBar()
searchBar.text = "서울"


func searchTitle() {

	// Item 데이터 요청 생성.
	let request: NSFetchRequest<TodoModel> = TodoModel.fetchRequest()

	// NSPredicate 초기화하여 Item의 title 검색어가 포함되는 데이터만 리턴됩니다.
	request.predicate = NSPredicate(format: "title CONTAINS[cd] %@", self.searchBar.text)

	// --> 예시 검색어인 "서울"을 포함하는 Item 데이터가 출력된다.
}

 

히스토리

- 2022.08.08 : 더 알아보기 쉽도록 내용 수정

반응형