NSPredicate
Наследование
-
NSObject -
NSPredicate -
NSComparisonPredicate -
NSCompoundPredicate
-
NSObject -
NSPredicate -
NSComparisonPredicate -
NSCompoundPredicate
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
NSSecureCoding -
Печатаемый -
NSCopying -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 3.0 и позже.
NSPredicate класс используется для определения логических условий, используемых для ограничения поиска или для выборки или для фильтрации в памяти.
Вы используете предикаты для представления логических условий, используемых для описания объектов в персистентных хранилищах и фильтрации в памяти объектов. Несмотря на то, что распространено создать предикаты непосредственно из экземпляров NSComparisonPredicate, NSCompoundPredicate, и NSExpression, Вы часто создаете предикаты из строки формата, анализирующейся методами класса для NSPredicate. Примеры строк формата предиката включают:
Простые сравнения, такой как
grade == "7"илиfirstName like "Shaffiq"Случай и диакритические нечувствительные поиски, такой как
name contains[cd] "itroen"Логические операции, такой как
(firstName like "Mark") OR (lastName like "Adderley")В OS X v10.5 и позже, можно создать между предикатами такой как
date between {$YESTERDAY, $TOMORROW}.
Можно создать предикаты для отношений, таких как:
group.name like "work*"ALL children.age > 12ANY children.age > 12
Можно создать предикаты для операций, такой как @sum.items.price < 1000. Для ссылки полного синтаксиса обратитесь к Руководству по программированию Предиката.
Можно также создать предикаты, включающие переменные, так, чтобы предикат мог быть предопределен прежде, чем заменить конкретными значениями во время выполнения. В OS X v10.4, для предикатов, использующих переменные, оценка является двумя процессами шага (см. predicateWithSubstitutionVariables: и evaluateWithObject:). В OS X v10.5 и позже, можно использовать evaluateWithObject:substitutionVariables:, который комбинирует эти шаги.
-
Создает и возвращает новый предикат, сформированный путем создания новой строки с данным форматом и парсинга результата.
Объявление
Objective C
+ (NSPredicate *)predicateWithFormat:(NSString *)format,...Параметры
formatСтрока формата для нового предиката.
...Список разделенных запятой значений параметров для замены в
format.Возвращаемое значение
Новый предикат, сформированный путем создания новой строки с
formatи парсинг результата.Обсуждение
Для получения дополнительной информации формата строки формата и ограничений на подстановку переменных, посмотрите Синтаксис Строки формата Предиката.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 3.0 и позже.
-
Создает и возвращает новый предикат путем замены значениями в данном массиве в строку формата и парсинга результата.
Объявление
Swift
init(formatpredicateFormat: String, argumentArrayarguments: [AnyObject]?) -> NSPredicateПараметры
predicateFormatСтрока формата для нового предиката.
argumentsПараметры для замены в
predicateFormat. В значения заменяютpredicateFormatв порядке они появляются в массиве.Возвращаемое значение
Новый предикат путем замены значениями в
argumentsвpredicateFormat, и парсинг результата.Обсуждение
Для получения дополнительной информации формата строки формата и ограничений на подстановку переменных, посмотрите Синтаксис Строки формата Предиката.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
-
Создает и возвращает новый предикат путем замены значениями в списке аргументов в строку формата и парсинга результата.
Объявление
Swift
init(formatformat: String, argumentsargList: CVaListPointer) -> NSPredicateObjective C
+ (NSPredicate *)predicateWithFormat:(NSString *)formatarguments:(va_list)argListПараметры
formatСтрока формата для нового предиката.
argListПараметры для замены в
predicateFormat. В значения заменяютpredicateFormatв порядке они появляются в списке аргументов.Возвращаемое значение
Новый предикат путем замены значениями в
argListвpredicateFormatи парсинг результата.Обсуждение
Для получения дополнительной информации формата строки формата и ограничений на подстановку переменных, посмотрите Синтаксис Строки формата Предиката.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
-
Возвращает копию получателя с переменными получателя, которыми заменяют значения, указанные в данном словаре переменных замены.
Объявление
Swift
func predicateWithSubstitutionVariables(_variables: [NSObject : AnyObject]) -> SelfObjective C
- (instancetype)predicateWithSubstitutionVariables:(NSDictionary *)variablesПараметры
variablesСловарь переменных замены. Словарь должен содержать пары ключ/значение для всех переменных в получателе.
Возвращаемое значение
Копия получателя с переменными получателя, которыми заменяют значения, указанные в
variables.Обсуждение
Сам получатель не изменяется этим методом, таким образом, можно снова использовать его для любого числа замен.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
-
Создает и возвращает предикат, всегда оценивающий к данному значению.
Объявление
Swift
init(valuevalue: Bool) -> NSPredicateObjective C
+ (NSPredicate *)predicateWithValue:(BOOL)valueПараметры
valueЗначение, к которому новый предикат должен оценить.
Возвращаемое значение
Предикат, всегда оценивающий к
value.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
-
Создает и возвращает предикат, оценивающий использование указанного блочного объекта и словаря привязки.
Объявление
Swift
init(blockblock: (AnyObject!, [NSObject : AnyObject]!) -> Bool) -> NSPredicateObjective C
+ (NSPredicate *)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))blockПараметры
blockБлок применяется к объекту, который будет оценен.
Блок берет два параметра:
evaluatedObjectОбъект, который будет оценен.
bindingsСловарь переменных замены. Словарь должен содержать пары ключ/значение для всех переменных в получателе.
Блочные возвраты
YEStrueеслиevaluatedObjectоценивает к истине, иначеNOfalse.Возвращаемое значение
Новый предикат этим оценивает использование объектов
block.Специальные замечания
В OS X v10.6, Базовая Информационная поддержка этот метод в и атомарных хранилищах в памяти, но не в находящемся в SQLite хранилище.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 4.0 и позже.
-
Возвращает булево значение, указывающее, соответствует ли данный объект условия, указанные получателем.
Объявление
Swift
func evaluateWithObject(_object: AnyObject) -> BoolObjective C
- (BOOL)evaluateWithObject:(id)objectПараметры
objectОбъект, против которого можно оценить получатель.
Возвращаемое значение
YEStrueеслиobjectсоответствует условия, указанные получателем, иначеNOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
-
Возвращает булево значение, указывающее, соответствует ли данный объект условия, указанные получателем после замены в значениях в данном словаре переменных.
Объявление
Swift
func evaluateWithObject(_object: AnyObject, substitutionVariablesvariables: [NSObject : AnyObject]?) -> BoolObjective C
- (BOOL)evaluateWithObject:(id)objectsubstitutionVariables:(NSDictionary *)variablesПараметры
objectОбъект, против которого можно оценить получатель.
variablesСловарь переменных замены. Словарь должен содержать пары ключ/значение для всех переменных в получателе.
Возвращаемое значение
YEStrueеслиobjectсоответствует условия, указанные получателем после замены в значениях вvariablesдля любых заменяющих маркеров, иначеNOfalse.Обсуждение
Этот метод возвращает тот же результат как два процесса шага первого вызова
predicateWithSubstitutionVariables:на получателе и затем вызовеevaluateWithObject:на возвращенном предикате. Этот метод оптимизирован для ситуаций, требующих неоднократно оценки предиката с переменными замены с различными подстановками переменных.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
-
Вызовите предикат, надежно декодировавшийся для разрешения оценки.
Объявление
Swift
func allowEvaluation()Objective C
- (void)allowEvaluationОбсуждение
При безопасном декодировании
NSPredicateобъект закодировал использованиеNSSecureCoding, оценка отключена, потому что потенциально небезопасно оценить предикаты, Вы выходите из архива.Перед включением оценки необходимо проверить ключевые пути, селекторы, и т.д. чтобы гарантировать, что не будет выполняться никакой ошибочный или вредоносный код. Как только у Вас есть preflighted предикат, можно включить получатель для оценки путем вызова
allowEvaluation.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
predicateFormatСвойствоСтрока формата получателя. (только для чтения)
Объявление
Swift
var predicateFormat: String { get }Objective C
@property(readonly, copy) NSString *predicateFormatСпециальные замечания
Строка, возвращенная этим методом, как гарантируют, не совпадет со строкой, используемой для создания использования предиката
predicateWithFormat:и т.д. Вы не можете использовать этот метод для создания персистентного представления предиката, который Вы могли использовать для воссоздания исходного предиката. Если Вы нуждаетесь в персистентном представлении предиката, создаете архив (NSPredicateпринимаетNSCodingпротокол).Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
