Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы основы ссылка класса NSPredicate

Опции
Развертывание Target:

На этой странице
Язык:

NSPredicate

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 > 12

  • ANY children.age > 12

Можно создать предикаты для операций, такой как @sum.items.price < 1000. Для ссылки полного синтаксиса обратитесь к Руководству по программированию Предиката.

Можно также создать предикаты, включающие переменные, так, чтобы предикат мог быть предопределен прежде, чем заменить конкретными значениями во время выполнения. В OS X v10.4, для предикатов, использующих переменные, оценка является двумя процессами шага (см. predicateWithSubstitutionVariables: и evaluateWithObject:). В OS X v10.5 и позже, можно использовать evaluateWithObject:substitutionVariables:, который комбинирует эти шаги.

Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.4 и позже.
  • Создает и возвращает новый предикат, сформированный путем создания новой строки с данным форматом и парсинга результата.

    Объявление

    Objective C

    + (NSPredicate *)predicateWithFormat:(NSString *)format, ...

    Параметры

    format

    Строка формата для нового предиката.

    ...

    Список разделенных запятой значений параметров для замены в format.

    Возвращаемое значение

    Новый предикат, сформированный путем создания новой строки с format и парсинг результата.

    Обсуждение

    Для получения дополнительной информации формата строки формата и ограничений на подстановку переменных, посмотрите Синтаксис Строки формата Предиката.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Создает и возвращает новый предикат путем замены значениями в данном массиве в строку формата и парсинга результата.

    Объявление

    Swift

    init(format predicateFormat: String, argumentArray arguments: [AnyObject]?) -> NSPredicate

    Objective C

    + (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat argumentArray:(NSArray *)arguments

    Параметры

    predicateFormat

    Строка формата для нового предиката.

    arguments

    Параметры для замены в predicateFormat. В значения заменяют predicateFormat в порядке они появляются в массиве.

    Возвращаемое значение

    Новый предикат путем замены значениями в arguments в predicateFormat, и парсинг результата.

    Обсуждение

    Для получения дополнительной информации формата строки формата и ограничений на подстановку переменных, посмотрите Синтаксис Строки формата Предиката.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.4 и позже.

  • Создает и возвращает новый предикат путем замены значениями в списке аргументов в строку формата и парсинга результата.

    Объявление

    Swift

    init(format format: String, arguments argList: CVaListPointer) -> NSPredicate

    Objective C

    + (NSPredicate *)predicateWithFormat:(NSString *)format arguments:(va_list)argList

    Параметры

    format

    Строка формата для нового предиката.

    argList

    Параметры для замены в predicateFormat. В значения заменяют predicateFormat в порядке они появляются в списке аргументов.

    Возвращаемое значение

    Новый предикат путем замены значениями в argList в predicateFormat и парсинг результата.

    Обсуждение

    Для получения дополнительной информации формата строки формата и ограничений на подстановку переменных, посмотрите Синтаксис Строки формата Предиката.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.4 и позже.

  • Возвращает копию получателя с переменными получателя, которыми заменяют значения, указанные в данном словаре переменных замены.

    Объявление

    Swift

    func predicateWithSubstitutionVariables(_ variables: [NSObject : AnyObject]) -> Self!

    Objective C

    - (instancetype)predicateWithSubstitutionVariables:(NSDictionary *)variables

    Параметры

    variables

    Словарь переменных замены. Словарь должен содержать пары ключ/значение для всех переменных в получателе.

    Возвращаемое значение

    Копия получателя с переменными получателя, которыми заменяют значения, указанные в variables.

    Обсуждение

    Сам получатель не изменяется этим методом, таким образом, можно снова использовать его для любого числа замен.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.4 и позже.

  • Создает и возвращает предикат, всегда оценивающий к данному значению.

    Объявление

    Swift

    init(value value: Bool) -> NSPredicate

    Objective C

    + (NSPredicate *)predicateWithValue:(BOOL)value

    Параметры

    value

    Значение, к которому новый предикат должен оценить.

    Возвращаемое значение

    Предикат, всегда оценивающий к value.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.4 и позже.

  • Создает и возвращает предикат, оценивающий использование указанного блочного объекта и словаря привязки.

    Объявление

    Swift

    init(block block: (AnyObject!, [NSObject : AnyObject]!) -> Bool) -> NSPredicate

    Objective 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

    Доступность

    Доступный в OS X v10.6 и позже.

  • Возвращает булево значение, указывающее, соответствует ли данный объект условия, указанные получателем.

    Объявление

    Swift

    func evaluateWithObject(_ object: AnyObject) -> Bool

    Objective C

    - (BOOL)evaluateWithObject:(id)object

    Параметры

    object

    Объект, против которого можно оценить получатель.

    Возвращаемое значение

    YEStrue если object соответствует условия, указанные получателем, иначе NOfalse.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.4 и позже.

  • Возвращает булево значение, указывающее, соответствует ли данный объект условия, указанные получателем после замены в значениях в данном словаре переменных.

    Объявление

    Swift

    func evaluateWithObject(_ object: AnyObject, substitutionVariables variables: [NSObject : AnyObject]?) -> Bool

    Objective C

    - (BOOL)evaluateWithObject:(id)object substitutionVariables:(NSDictionary *)variables

    Параметры

    object

    Объект, против которого можно оценить получатель.

    variables

    Словарь переменных замены. Словарь должен содержать пары ключ/значение для всех переменных в получателе.

    Возвращаемое значение

    YEStrue если object соответствует условия, указанные получателем после замены в значениях в variables для любых заменяющих маркеров, иначе NOfalse.

    Обсуждение

    Этот метод возвращает тот же результат как два процесса шага первого вызова predicateWithSubstitutionVariables: на получателе и затем вызове evaluateWithObject: на возвращенном предикате. Этот метод оптимизирован для ситуаций, требующих неоднократно оценки предиката с переменными замены с различными подстановками переменных.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.5 и позже.

  • Вызовите предикат, надежно декодировавшийся для разрешения оценки.

    Объявление

    Swift

    func allowEvaluation()

    Objective C

    - (void)allowEvaluation

    Обсуждение

    При безопасном декодировании NSPredicate объект закодировал использование NSSecureCoding, оценка отключена, потому что потенциально небезопасно оценить предикаты, Вы выходите из архива.

    Перед включением оценки необходимо проверить ключевые пути, селекторы, и т.д. чтобы гарантировать, что не будет выполняться никакой ошибочный или вредоносный код. Как только у Вас есть preflighted предикат, можно включить получатель для оценки путем вызова allowEvaluation.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.9 и позже.

  • predicateFormat predicateFormat Свойство

    Строка формата получателя. (только для чтения)

    Объявление

    Swift

    var predicateFormat: String { get }

    Objective C

    @property(readonly, copy) NSString *predicateFormat

    Специальные замечания

    Строка, возвращенная этим методом, как гарантируют, не совпадет со строкой, используемой для создания использования предиката predicateWithFormat: и т.д. Вы не можете использовать этот метод для создания персистентного представления предиката, который Вы могли использовать для воссоздания исходного предиката. Если Вы нуждаетесь в персистентном представлении предиката, создаете архив (NSPredicate принимает NSCoding протокол).

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.4 и позже.