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

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

Разработчик

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

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

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

NSExpression

NSExpression используется для представления выражений в предикате.

Операции сравнения в NSPredicate основываются на двух выражениях, как представлено экземплярами NSExpression класс. Выражения создаются для постоянных значений, ключевых путей, и т.д.

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

Типы выражения

В OS X v10.5, NSExpression представляет несколько новых типов выражения: NSSubqueryExpressionType, NSAggregateExpressionType, NSUnionSetExpressionType, NSIntersectSetExpressionType, и NSMinusSetExpressionType.

Составные выражения

Составное выражение позволяет Вам создавать предикаты, содержащие выражения, оценивающие к наборам, содержащим дальнейшие выражения. Набор может быть NSArray, NSSet, или NSDictionary объект.

Например, рассмотрите оператора BETWEEN (NSBetweenPredicateOperatorType); его правая сторона является набором, содержащим два элемента. Используя просто OS X v10.4 API, эти элементы должны быть константами, поскольку нет никакого способа заполнить их использующий переменные выражения. На OS X v10.4, не возможно создать шаблон предиката к эффекту date between {$YESTERDAY, $TOMORROW}; вместо этого необходимо создать новый предикат каждый раз.

Составные выражения не поддерживаются Базовыми Данными.

Выражения подзапроса

NSSubqueryExpressionType создает подвыражение, оценка которого возвращает подмножество набора объектов. Это позволяет Вам создавать сложные запросы через отношения, такие как поиск многократных коррелированых значений на целевом объекте отношения.

Наборы выражений

Наборы выражений (NSUnionSetExpressionType, NSIntersectSetExpressionType, и NSMinusSetExpressionType) объедините результаты способом, подобным NSSet методы.

Обе стороны этих выражений должны оценить к набору; левая сторона должна оценить к NSSet объект, правая сторона может быть любым другим типом набора.

  • (expression UNION expression)
  • (expression INTERSECT expression)
  • (expression MINUS expression)

Наборы выражений не поддерживаются Базовыми Данными.

Выражения function

На OS X v10.4, NSExpression только поддерживает предопределенный набор функций: sum, count, min, max, и average. К этим предопределенным функциям получили доступ в синтаксисе предиката с помощью пользовательских ключевых слов (например, MAX(1, 5, 10)).

На OS X v10.5 и позже, выражения function также поддерживают произвольные вызовы метода. Для использования этой расширенной функциональности можно теперь использовать синтаксис FUNCTION(receiver, selectorName, arguments, ...), например:

  • FUNCTION(@"/Developer/Tools/otest", @"lastPathComponent") => @"otest"

Все методы должны взять 0 или больше id параметры и возврат id значение, несмотря на то, что можно использовать CAST выражение для преобразования типов данных со строковыми представлениями с потерями (например, CAST(####, "NSDate")). CAST выражение расширяется в OS X v10.5 для оказания поддержки для кастинга к классам для использования в создании получателей для выражений function.

Обратите внимание на то, что несмотря на то, что Базовая оценка Информационной поддержки предопределенных функций, это не поддерживает оценку пользовательских функций предиката в персистентных хранилищах (во время выборки).

Наследование


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


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.4 и позже.
  • Инициализирует выражение с указанным типом выражения.

    Объявление

    Swift

    init(expressionType type: NSExpressionType)

    Objective C

    - (instancetype)initWithExpressionType:(NSExpressionType)type

    Параметры

    type

    Тип нового выражения, как определено NSExpressionType.

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

    Инициализированный NSExpression объект типа type.

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

    Этот метод является определяемым инициализатором для NSExpression.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Инициализирует выражение с указанными параметрами выражения.

    Объявление

    Objective C

    + (NSExpression *)expressionWithFormat:(NSString *)expressionFormat,, ...

    Параметры

    expressionFormat,

    Формат выражения.

    ...

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

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

    Инициализированный NSExpression объект с указанным форматом.

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

    Objective C

    @import Foundation;

    Доступность

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

  • Инициализирует выражение с указанным форматом выражения и массивом параметров.

    Объявление

    Swift

    init(format expressionFormat: String, argumentArray arguments: [AnyObject]) -> NSExpression

    Objective C

    + (NSExpression *)expressionWithFormat:(NSString *)expressionFormat argumentArray:(NSArray *)arguments

    Параметры

    expressionFormat

    Формат выражения.

    arguments

    Массив параметров, которые будут использоваться с expressionFormat строка.

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

    Инициализированный NSExpression объект с указанными параметрами.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Инициализирует выражение с указанным форматом выражения и списком параметров.

    Объявление

    Swift

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

    Objective C

    + (NSExpression *)expressionWithFormat:(NSString *)expressionFormat arguments:(va_list)argList

    Параметры

    expressionFormat

    Формат выражения.

    argList

    Список параметров, которые будут вставлены в expressionFormat строка. Список аргументов завершается nil.

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

    Инициализированный NSExpression объект с указанными параметрами.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    init(forConstantValue obj: AnyObject) -> NSExpression

    Objective C

    + (NSExpression *)expressionForConstantValue:(id)obj

    Параметры

    obj

    Постоянное значение новое выражение должно представлять.

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

    Новое выражение, представляющее постоянное значение, obj.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    class func expressionForEvaluatedObject() -> NSExpression

    Objective C

    + (NSExpression *)expressionForEvaluatedObject

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

    Новое выражение, представляющее оцениваемый объект.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Возвращает вызывающее новое выражение valueForKeyPath: с данным ключевым путем.

    Объявление

    Swift

    init(forKeyPath keyPath: String) -> NSExpression

    Objective C

    + (NSExpression *)expressionForKeyPath:(NSString *)keyPath

    Параметры

    keyPath

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

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

    Вызывающее новое выражение valueForKeyPath: с keyPath.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    init(forVariable string: String) -> NSExpression

    Objective C

    + (NSExpression *)expressionForVariable:(NSString *)string

    Параметры

    string

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

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

    Новое выражение, извлекающее из словаря привязок переменных значение для ключа string.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    class func expressionForAnyKey() -> NSExpression

    Objective C

    + (NSExpression *)expressionForAnyKey

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

    Новое выражение, представляющее любой ключ для запроса Центра внимания.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Возвращает новое составное выражение для данного набора.

    Объявление

    Swift

    init(forAggregate collection: [AnyObject]) -> NSExpression

    Objective C

    + (NSExpression *)expressionForAggregate:(NSArray *)collection

    Параметры

    collection

    Объект коллекции (экземпляр NSArray, NSSet, или NSDictionary) это содержит дальнейшие выражения.

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

    Новое выражение, содержащее выражения в collection.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    init(forUnionSet left: NSExpression, with right: NSExpression) -> NSExpression

    Objective C

    + (NSExpression *)expressionForUnionSet:(NSExpression *)left with:(NSExpression *)right

    Параметры

    left

    Выражение, оценивающее к NSSet объект.

    right

    Выражение, оценивающее к объекту коллекции (экземпляр NSArray, NSSet, или NSDictionary).

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

    Новое NSExpression объект, представляющий объединение left и right.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    init(forIntersectSet left: NSExpression, with right: NSExpression) -> NSExpression

    Objective C

    + (NSExpression *)expressionForIntersectSet:(NSExpression *)left with:(NSExpression *)right

    Параметры

    left

    Выражение, оценивающее к NSSet объект.

    right

    Выражение, оценивающее к объекту коллекции (экземпляр NSArray, NSSet, или NSDictionary).

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

    Новое NSExpression объект, представляющий пересечение left и right.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    init(forMinusSet left: NSExpression, with right: NSExpression) -> NSExpression

    Objective C

    + (NSExpression *)expressionForMinusSet:(NSExpression *)left with:(NSExpression *)right

    Параметры

    left

    Выражение, оценивающее к NSSet объект.

    right

    Выражение, оценивающее к объекту коллекции (экземпляр NSArray, NSSet, или NSDictionary).

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

    Новое NSExpression объект, представляющий вычитание right от left.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Возвращает выражение, фильтрующее набор путем хранения элементов в наборе в данной переменной и хранения элементов, для которых спецификатор возвращает true.

    Объявление

    Swift

    init(forSubquery expression: NSExpression, usingIteratorVariable variable: String, predicate predicate: AnyObject) -> NSExpression

    Objective C

    + (NSExpression *)expressionForSubquery:(NSExpression *)expression usingIteratorVariable:(NSString *)variable predicate:(id)predicate

    Параметры

    expression

    Выражение предиката, оценивающее к набору.

    variable

    Используемый в качестве локальной переменной, и будет тень любые экземпляры переменной в словаре привязки. Переменная удалена, или старое значение заменяется, как только завершается оценка.

    predicate

    Предикат раньше определял, принадлежит ли элемент набора результата.

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

    Выражение, фильтрующее набор путем хранения элементов в наборе в переменной переменной и хранения элементов, для которых спецификатор возвращает true

    Обсуждение

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

    Например, предположите, что у Вас есть объект Квартиры, имеющий к - многие отношение к Резидентному объекту, и что Вы хотите создать запрос для всех квартир, населяемых резидентным объектом, именем которого является «Джейн» и чья фамилия является «Самкой». Используя только API, доступный для OS X v 10.4, Вы могли попробовать предикат:

    • resident.firstname == "Jane" && resident.lastname == "Doe"

    но это будет всегда возвращать false с тех пор resident.firstname и resident.lastname оба набора возврата. Вы могли также попробовать:

    • resident.firstname CONTAINS "Jane" && resident.lastname CONTAINS "Doe"

    но это также испорчено — это возвращает true, если существует два резидентных объекта, одним из которых является Джон Доу и одним из которых является Джейн Смит. Единственный способ найти желаемые квартиры состоит в том, чтобы сделать две передачи: один через резидентные объекты, чтобы найти, что «Джейн Доу» и одна через квартиры находят тех, где Действительно находится наша Джейн.

    Выражения подзапроса обеспечивают способ инкапсулировать этот тип квалификации в единый запрос.

    Формат строки для выражения подзапроса:

    • SUBQUERY(collection_expression, variable_expression, predicate);

    где expression выражение предиката, оценивающее к набору, variableExpression выражение, которое будет использоваться для содержания каждого отдельного элемента collection, и predicate предикат, используемый, чтобы определить, принадлежит ли элемент набора результата.

    Используя подзапросы, запрос квартиры мог быть повторно сформулирован как

    • (SUBQUERY(residents, $x, $x.firstname == "Jane" && $x.lastname == "Doe").@count != 0)

    или

    • (SUBQUERY(residents, $x, $x.firstname == "Jane" && $x.lastname == "Doe")[size] != 0)

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает объект NSExpression, который будет использовать Блок для оценки объектов.

    Объявление

    Swift

    init(forBlock block: (AnyObject!, [AnyObject]!, NSMutableDictionary!) -> AnyObject!, arguments arguments: [AnyObject]) -> NSExpression

    Objective C

    + (NSExpression *)expressionForBlock:(id (^)(id evaluatedObject, NSArray *expressions, NSMutableDictionary *context))block arguments:(NSArray *)arguments

    Параметры

    block

    Блок применяется к объекту, который будет оценен.

    Блок берет три параметра и возвращает значение:

    evaluatedObject

    Объект, который будет оценен.

    expressions

    Массив выражений предиката, оценивающий к набору.

    context

    Словарь, который выражение может использовать для хранения временного состояния для одной оценки предиката.

    Обратите внимание на то, что context является непостоянным, и что к этому можно только получить доступ во время оценки выражения. Вы не должны пытаться сохранить его для использования в другом месте.]

    Блок возвращается evaluatedObject.

    arguments

    Массив, содержащий NSExpression объекты, которые будут использоваться в качестве параметров во время вызова селектора.

    Для селектора, берущего параметры, массив должен быть пустым. Для селектора, берущего один или несколько параметров, массив должен содержать тот NSExpression объект, который оценит к экземпляру надлежащего типа для каждого параметра.

    Если существует несоответствие между числом ожидаемых параметров и числом, Вы обеспечиваете во время оценки, исключение может быть повышено, или недостающие параметры могут просто быть заменены nil (который происходит, зависит от того, сколько параметров предоставлено, и имеете ли Вы сверх - или потеря значимости).

    Посмотрите expressionForFunction:arguments: для полного списка параметров.

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

    Выражение, фильтрующее набор с помощью указанного Блока.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    expressionBlock

  • Возвращает новое выражение, которое вызовет одну из предопределенных функций.

    Объявление

    Swift

    init(forFunction name: String, arguments parameters: [AnyObject]) -> NSExpression

    Objective C

    + (NSExpression *)expressionForFunction:(NSString *)name arguments:(NSArray *)parameters

    Параметры

    name

    Имя функции для вызова.

    parameters

    Массив, содержащий NSExpression объекты, которые будут использоваться в качестве параметров во время вызова селектора.

    Для селектора, берущего параметры, массив должен быть пустым. Для селектора, берущего один или несколько параметров, массив должен содержать тот NSExpression объект, который оценит к экземпляру надлежащего типа для каждого параметра.

    Если существует несоответствие между числом ожидаемых параметров и числом, Вы обеспечиваете во время оценки, исключение может быть повышено, или недостающие параметры могут просто быть заменены nil (который происходит, зависит от того, сколько параметров предоставлено, и имеете ли Вы сверх - или потеря значимости).

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

    Новое выражение, вызывающее функцию name использование параметров в parameters.

    Обсуждение

    name параметр может быть одной из следующих предопределенных функций.

    Функция

    Параметр

    Возвраты

    Доступность

    average:

    NSArray объектный содержащий NSExpression объекты, представляющие числа

    NSNumber объект (среднее число значений в массиве)

    OS X v10.4 и позже

    sum:

    NSArray объектный содержащий NSExpression объекты, представляющие числа

    NSNumber объект (сумма значений в массиве)

    OS X v10.4 и позже

    count:

    NSArray объектный содержащий NSExpression объекты, представляющие числа

    NSNumber объект (число элементов в массиве)

    OS X v10.4 и позже

    min:

    NSArray объектный содержащий NSExpression объекты, представляющие числа

    NSNumber объект (минимум значений в массиве)

    OS X v10.4 и позже

    max:

    NSArray объектный содержащий NSExpression объекты, представляющие числа

    NSNumber объект (максимум значений в массиве)

    OS X v10.4 и позже

    median:

    NSArray объектный содержащий NSExpression объекты, представляющие числа

    NSNumber объект (медиана значений в массиве)

    OS X v10.5 и позже

    mode:

    NSArray объектный содержащий NSExpression объекты, представляющие числа

    NSArray объект (режим значений в массиве)

    OS X v10.5 и позже

    stddev:

    NSArray объектный содержащий NSExpression объекты, представляющие числа

    NSNumber объект (стандартное отклонение значений в массиве)

    OS X v10.5 и позже

    add:to:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (сумма значений в массиве)

    OS X v10.5 и позже

    from:subtract:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (результат вычитания второго значения в массиве от первого значения в массиве)

    OS X v10.5 и позже

    multiply:by:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (результат умножения значений в массиве)

    OS X v10.5 и позже

    divide:by:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (результат деления первого значения в массиве вторым значением в массиве)

    OS X v10.5 и позже

    modulus:by:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (остаток от деления первого значения в массиве вторым значением в массиве)

    OS X v10.5 и позже

    sqrt:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (квадратный корень значения в массиве)

    OS X v10.5 и позже

    log:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (журнал значения в массиве)

    OS X v10.5 и позже

    ln:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (естественный журнал значения в массиве)

    OS X v10.5 и позже

    raise:toPower:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (результат повышения первого значения в массиве к питанию второго значения в массиве)

    OS X v10.5 и позже

    exp:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (основной-e экспоненциал значения в массиве)

    OS X v10.5 и позже

    ceiling:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (самое маленькое интегральное значение не меньше, чем значение в массиве)

    OS X v10.5 и позже

    abs:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (абсолютное значение значения в массиве)

    OS X v10.5 и позже

    trunc:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (интегральное значение, самое близкое к, но не больше, чем значение в массиве)

    OS X v10.5 и позже

    random

    nil

    NSNumber объект (случайное целочисленное значение)

    OS X v10.5 и позже

    random:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (случайное целочисленное значение между 0 и значение в (монопольном) массиве)

    OS X v10.5 и позже

    now

    nil

    [NSDate] объект (текущая дата и время)

    OS X v10.5 и позже

    floor:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект

     iOS 3.0 и позже

    uppercase:

    NSArray объект, содержащий один NSExpression объект, представляющий строку

    NSString объект

     iOS 3.0 и позже

    lowercase:

    NSArray объект, содержащий один NSExpression объект, представляющий строку

    NSString объект

     iOS 3.0 и позже

    bitwiseAnd:with:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (число обрабатывается как NSInteger)

     iOS 3.0 и позже

    bitwiseOr:with:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (число обрабатывается как NSInteger)

     iOS 3.0 и позже

    bitwiseXor:with:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (число обрабатывается как NSInteger)

     iOS 3.0 и позже

    leftshift:by:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (число обрабатывается как NSInteger)

     iOS 3.0 и позже

    rightshift:by:

    NSArray объект, содержащий два NSExpression объекты, представляющие числа

    NSNumber объект (число обрабатывается как NSInteger)

     iOS 3.0 и позже

    onesComplement:

    NSArray объект, содержащий один NSExpression объект, представляющий число

    NSNumber объект (число обрабатывается как NSInteger)

     iOS 3.0 и позже

    noindex:

    NSArray объект, содержащий NSExpression объект

    Результат оценки параметра, как будто noindex: выражение function не существовало.

     iOS 3.0 и позже

    Если селектор недопустим, этот метод сразу повышает исключение; если параметры являются неправильными, это повышает исключение во время выполнения.

    parameters параметром является набор, содержащий выражение, оценивающее к набору, как проиллюстрировано в следующих примерах:

    • NSNumber *number1 = [NSNumber numberWithInteger:20];
    • NSNumber *number2 = [NSNumber numberWithInteger:40];
    • NSArray *numberArray = [NSArray arrayWithObjects: number1, number2, nil];
    • NSExpression *arrayExpression = [NSExpression expressionForConstantValue: numberArray];
    • NSArray *argumentArray = [NSArray arrayWithObject: arrayExpression];
    • NSExpression* expression =
    • [NSExpression expressionForFunction:@"sum:" arguments:argumentArray];
    • id result = [expression expressionValueWithObject: nil context: nil];
    • BOOL ok = [result isEqual: [NSNumber numberWithInt: 60]]; // ok == YES
    • [NSExpression expressionForFunction:@"random" arguments:nil];
    • [NSExpression expressionForFunction:@"max:"
    • arguments: [NSArray arrayWithObject:
    • [NSExpression expressionForConstantValue:
    • [NSArray arrayWithObjects:
    • [NSNumber numberWithInt: 5], [NSNumber numberWithInt: 10], nil]]]];
    • [NSExpression expressionForFunction:@"subtract:from:"
    • arguments: [NSArray arrayWithObjects:
    • [NSExpression expressionForConstantValue: [NSNumber numberWithInt: 5]],
    • [NSExpression expressionForConstantValue: [NSNumber numberWithInt: 10]], nil]];

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

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Возвращает выражение, которое возвратит результат вызова на данную цель селектор с именем с помощью данный параметры.

    Объявление

    Swift

    init(forFunction target: NSExpression, selectorName name: String, arguments parameters: [AnyObject]) -> NSExpression

    Objective C

    + (NSExpression *)expressionForFunction:(NSExpression *)target selectorName:(NSString *)name arguments:(NSArray *)parameters

    Параметры

    target

    NSExpression объект, который оценит объект на который селектор, идентифицированный name может быть вызван.

    name

    Имя метода, который будет вызван.

    parameters

    Массив, содержащий NSExpression объекты, которые могут быть оценены для обеспечения параметров для метода, указанного name.

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

    Выражение, которое возвратит результат вызова названного селектора name на результате оценки целевого выражения с параметрами, указанными путем оценки элементов parameters.

    Обсуждение

    См. описание expressionForFunction:arguments: для примеров того, как создать массив параметров.

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

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

    Это выражение эффективно позволяет Вашему приложению вызывать любой метод на любой объект, к которому это может перейти во время выполнения. Необходимо рассмотреть импликации безопасности этого типа оценки.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Параметры за выражение. (только для чтения)

    Объявление

    Swift

    var arguments: [AnyObject] { get }

    Objective C

    @property(readonly, copy) NSArray *arguments

    Обсуждение

    Параметрами выражения является массив выражений, которые будут переданы как параметры во время вызова селектора на операнде выражения function.

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • набор набор Свойство

    Набор выражений в составном выражении или элемент набора выражения подзапроса. (только для чтения)

    Объявление

    Swift

    var collection: AnyObject { get }

    Objective C

    @property(readonly, retain) id collection

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • constantValue constantValue Свойство

    Постоянное значение выражения. (только для чтения)

    Объявление

    Swift

    var constantValue: AnyObject { get }

    Objective C

    @property(readonly, retain) id constantValue

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • expressionType expressionType Свойство

    Тип выражения для выражения. (только для чтения)

    Объявление

    Swift

    var expressionType: NSExpressionType { get }

    Objective C

    @property(readonly) NSExpressionType expressionType

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • функция функция Свойство

    Функция для выражения. (только для чтения)

    Объявление

    Swift

    var function: String { get }

    Objective C

    @property(readonly, copy) NSString *function

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • keyPath keyPath Свойство

    Ключевой путь для выражения. (только для чтения)

    Объявление

    Swift

    var keyPath: String { get }

    Objective C

    @property(readonly, copy) NSString *keyPath

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • операнд операнд Свойство

    Операнд для выражения. (только для чтения)

    Объявление

    Swift

    @NSCopying var operand: NSExpression { get }

    Objective C

    @property(readonly, copy) NSExpression *operand

    Обсуждение

    Операнд для выражения является объектом, на который будут вызваны селектор или блок выражения. Объект является результатом оценки ключевого пути или одной из определенных функций. Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Предикат выражения подзапроса. (только для чтения)

    Объявление

    Swift

    @NSCopying var predicate: NSPredicate { get }

    Objective C

    @property(readonly, copy) NSPredicate *predicate

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • leftExpression leftExpression Свойство

    Левое выражение составного выражения. (только для чтения)

    Объявление

    Swift

    @NSCopying var leftExpression: NSExpression { get }

    Objective C

    @property(readonly, copy) NSExpression *leftExpression

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • rightExpression rightExpression Свойство

    Правильное выражение составного выражения. (только для чтения)

    Объявление

    Swift

    @NSCopying var rightExpression: NSExpression { get }

    Objective C

    @property(readonly, copy) NSExpression *rightExpression

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Переменная для выражения. (только для чтения)

    Объявление

    Swift

    var variable: String { get }

    Objective C

    @property(readonly, copy) NSString *variable

    Обсуждение

    Доступ к этому свойству повышает исключение, если это не применимо к выражению.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Оценивает выражение с помощью данного объекта и контекста.

    Объявление

    Swift

    func expressionValueWithObject(_ object: AnyObject?, context context: NSMutableDictionary?) -> AnyObject

    Objective C

    - (id)expressionValueWithObject:(id)object context:(NSMutableDictionary *)context

    Параметры

    object

    Объект, против которого оценено выражение.

    context

    Словарь, который выражение может использовать для хранения временного состояния для одной оценки предиката. Может быть nil.

    Обратите внимание на то, что context является непостоянным, и что к этому можно только получить доступ во время оценки выражения. Вы не должны пытаться сохранить его для использования в другом месте.

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

    Оцененный объект.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    func allowEvaluation()

    Objective C

    - (void)allowEvaluation

    Обсуждение

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

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • expressionBlock expressionBlock Свойство

    Блок, выполняющийся для оценки выражения. (только для чтения)

    Объявление

    Swift

    var expressionBlock: (AnyObject!, [AnyObject]!, NSMutableDictionary!) -> AnyObject! { get }

    Objective C

    @property(readonly, copy) id (^expressionBlock)(id, NSArray *, NSMutableDictionary *)

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

Типы данных

  • Определяет возможные типы NSExpression.

    Объявление

    Swift

    enum NSExpressionType : UInt { case ConstantValueExpressionType case EvaluatedObjectExpressionType case VariableExpressionType case KeyPathExpressionType case FunctionExpressionType case UnionSetExpressionType case IntersectSetExpressionType case MinusSetExpressionType case SubqueryExpressionType case AggregateExpressionType case AnyKeyExpressionType case BlockExpressionType }

    Objective C

    enum { NSConstantValueExpressionType = 0, NSEvaluatedObjectExpressionType, NSVariableExpressionType, NSKeyPathExpressionType, NSFunctionExpressionType, NSUnionSetExpressionType, NSIntersectSetExpressionType, NSMinusSetExpressionType, NSSubqueryExpressionType = 13, NSAggregateExpressionType = 14, NSAnyKeyExpressionType = 15, NSBlockExpressionType = 19 } typedef NSUInteger NSExpressionType;

    Константы

    • ConstantValueExpressionType

      NSConstantValueExpressionType

      Выражение, всегда возвращающее то же значение.

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

    • EvaluatedObjectExpressionType

      NSEvaluatedObjectExpressionType

      Выражение, всегда возвращающее сам объект параметра.

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

    • VariableExpressionType

      NSVariableExpressionType

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

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

    • KeyPathExpressionType

      NSKeyPathExpressionType

      Выражение, возвращающее что-то, что может использоваться в качестве ключевого пути.

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

    • FunctionExpressionType

      NSFunctionExpressionType

      Выражение, возвращающее результат оценки функции.

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

    • UnionSetExpressionType

      NSUnionSetExpressionType

      Выражение, создающее объединение результатов двух вложенных выражений.

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

    • IntersectSetExpressionType

      NSIntersectSetExpressionType

      Выражение, создающее пересечение результатов двух вложенных выражений.

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

    • MinusSetExpressionType

      NSMinusSetExpressionType

      Выражение, комбинирующее два вложенных результата выражения вычитанием набора.

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

    • SubqueryExpressionType

      NSSubqueryExpressionType

      Выражение, фильтрующее набор с помощью подпредиката.

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

    • AggregateExpressionType

      NSAggregateExpressionType

      Выражение, определяющее агрегат NSExpression объекты.

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

    • AnyKeyExpressionType

      NSAnyKeyExpressionType

      Выражение, представляющее любой ключ.

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

    • BlockExpressionType

      NSBlockExpressionType

      Выражение, использующее Блок.

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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