[swift] NSPredicate 사용하기

NSPredicate는 Core Data와 같은 데이터베이스나 컬렉션에서 데이터를 필터링하거나 쿼리하는 데 사용되는 Cocoa 프레임워크의 클래스입니다. Swift를 사용하여 NSPredicate를 사용하는 방법을 알아보겠습니다.

NSPredicate란?

NSPredicate는 데이터 집합을 필터링하거나 찾는 데 사용되는 조건을 정의하는 객체입니다. 이를 통해 데이터베이스 또는 컬렉션에서 원하는 항목을 선택할 수 있습니다. NSPredicate는 SQL의 WHERE 절과 유사하게 작동합니다.

예제 코드

다음은 NSPredicate를 사용하여 “age” 속성이 30 이상인 모든 객체를 필터링하는 예제 코드입니다.

import Foundation

// 필터링할 데이터 배열 생성
let data = [Person(name: "John", age: 25),
            Person(name: "Alice", age: 30),
            Person(name: "Mike", age: 35),
            Person(name: "Emily", age: 40)]

// NSPredicate로 필터링
let predicate = NSPredicate(format: "age >= %d", 30)
let filteredData = data.filter { predicate.evaluate(with: $0) }

// 필터링된 결과 출력
for person in filteredData {
  print("\(person.name): \(person.age)")
}

위의 예제 코드에서는 “Person”이라는 클래스의 객체 배열에서 NSPredicate를 사용하여 “age” 속성이 30 이상인 객체를 필터링합니다. NSPredicate의 format 문자열은 “age >= %d”로 지정되어 있으며, 이는 “age” 속성이 30 이상인 객체를 선택하는 조건입니다.

참고 자료