NSPredicate의 %K는 NSString과 같은 키(key) 문자열을 포함하는 표현식(Expression)을 나타내는 포맷 지정자(format specifier)입니다. 이 포맷 지정자는 문자열 포맷을 작성할 때 사용하는 %@ 포맷 지정자와 유사하지만, 키(key) 문자열을 자동으로 따옴표로 묶어주는 역할을 합니다.
NSPredicate를 사용하여 코어 데이터(Core Data)를 검색하거나, 컬렉션(collection)에서 필터링하거나, 키-값 쌍(key-value pair)을 비교하는 경우, 키(key) 문자열을 동적으로 전달해야할 때가 있습니다. 이때, %K 포맷 지정자를 사용하면 키(key) 문자열을 안전하게 포함시킬 수 있으며, 오류를 방지할 수 있습니다.
예를 들어, 다음과 같은 코드는 "name"이라는 키(key)를 가진 객체를 검색하는 NSPredicate를 작성하는 예시입니다.
let name = "John"
let predicate = NSPredicate(format: "%K == %@", "name", name)
위의 예시에서, %K 포맷 지정자는 "name" 문자열을 안전하게 포함시켜줍니다. 이렇게 포맷 지정자를 사용하면, 키(key) 문자열을 하드코딩하는 것보다 유연하고 안전한 코드를 작성할 수 있습니다.
NSPredicate format string에는 여러 가지 포맷 지정자가 있습니다. 이러한 포맷 지정자는 값을 변환하거나 비교하는 데 사용됩니다. 일반적으로 사용되는 포맷 지정자는 다음과 같습니다.
- %K 문자열로 된 키. 데이터의 특정 속성을 나타냅니다.
- %d 정수 값
- %f 부동 소수점 값
- %@ 객체. 문자열, 숫자, 날짜 등의 값을 비교하는 데 사용됩니다.
- %i signed int
- %u unsigned int
- %x unsigned int을 16진수로 나타냅니다.
- %o unsigned int을 8진수로 나타냅니다.
댓글