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

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

Разработчик

Ссылка платформы CoreData ссылка класса NSFetchRequest

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

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

NSFetchRequest

Экземпляр NSFetchRequest описывает критерии поиска, используемые для получения данных от персистентного хранилища.

Экземпляр собирается, критерии должны были выбрать, и — дополнительно — упорядочивают группу управляемых объектов или данные о записях, сохраненных в персистентном хранилище. Запрос выборки должен содержать описание объекта (экземпляр NSEntityDescription) это указывает который объект искать. Это часто также содержит:

  • Предикат (экземпляр NSPredicate) это указывает, какие свойства выбрать и ограничения на выбор, например “фамилия начинается с ‘J’” €. Если Вы не указываете предикат, то все экземпляры указанного объекта выбраны (подвергающийся другим ограничениям, посмотрите executeFetchRequest:error: для полного изложения).

  • Массив дескрипторов вида (экземпляры NSSortDescriptor) это указывает, как возвращенные объекты должны быть упорядочены, например фамилией тогда именем.

Можно также указать другие аспекты запроса выборки — максимальное количество объектов, которые запрос должен возвратить, и к каким хранилищам данных запрос должен получить доступ. С OS X v10.5 и позже можно также указать, например, возвращает ли выборка управляемые объекты или просто идентификаторы объектов, и заполняются ли объекты полностью с их свойствами (см. resultType, includesSubentities, includesPropertyValues, и returnsObjectsAsFaults). С OS X v10.6 и позже и на iOS, можно далее указать, например, что свойства выбрать, смещение выборки, и соответствует ли, когда выборка выполняется, это против в настоящее время несохраняемых изменений в контексте управляемого объекта (см. resultType, propertiesToFetch, fetchOffset, и includesPendingChanges). Можно также выбрать отличные значения свойств и значения атрибута, удовлетворяющие заданную функцию, как проиллюстрировано в Базовых Отрывках Данных.

Вы используете NSFetchRequest объекты с методом executeFetchRequest:error:, определенный NSManagedObjectContext.

Вы часто предопределяете запросы выборки в модели управляемого объекта —NSManagedObjectModel обеспечивает API для получения сохраненного запроса выборки по имени. Сохраненные запросы выборки могут включать заполнителей для подстановки переменных, и тем самым служить шаблонами для более позднего завершения. Шаблоны запроса выборки поэтому позволяют Вам предопределять запросы с переменными, которыми заменяют во время выполнения.

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


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


Swift

import CoreData

Objective C

@import CoreData;

Доступность


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

    Объявление

    Objective C

    + (NSFetchRequest *)fetchRequestWithEntityName:(NSString *)entityName

    Параметры

    entityName

    Имя объекта для выборки.

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

    Запрос выборки, сконфигурированный для выборки использования названного объекта entityName.

    Обсуждение

    Этот метод обеспечивает удобный способ сконфигурировать объект для запроса выборки, не имея необходимость получать NSEntityDescription объект. Когда выборка выполняется, запрос использует контекст управляемого объекта для нахождения объекта с именем. Модель, связанная с персистентным координатором хранилища контекста, должна содержать названный объект entityName.

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

    Objective C

    @import CoreData;

    Доступность

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

  • Инициализирует запрос выборки, сконфигурированный с данным именем объекта

    Объявление

    Swift

    convenience init(entityName entityName: String)

    Objective C

    - (instancetype)initWithEntityName:(NSString *)entityName

    Параметры

    entityName

    Имя объекта для выборки.

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

    Запрос выборки, сконфигурированный для выборки использования названного объекта entityName.

    Обсуждение

    Этот метод обеспечивает удобный способ сконфигурировать объект для запроса выборки, не имея необходимость получать NSEntityDescription объект. Когда выборка выполняется, запрос использует контекст управляемого объекта для нахождения объекта с именем. Модель, связанная с персистентным координатором хранилища контекста, должна содержать названный объект entityName.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • entityName entityName Свойство

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

    Объявление

    Swift

    var entityName: String? { get }

    Objective C

    @property(nonatomic, readonly, strong) NSString *entityName

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • объект объект Свойство

    Объект указан для получателя.

    Объявление

    Swift

    var entity: NSEntityDescription?

    Objective C

    @property(nonatomic, strong) NSEntityDescription *entity

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • Булево значение, указывающее, включает ли получатель подобъекты в результаты.

    Объявление

    Swift

    var includesSubentities: Bool

    Objective C

    @property(nonatomic) BOOL includesSubentities

    Обсуждение

    YEStrue если запрос будет включать все подобъекты объекта для запроса, иначе NOfalse. Значение по умолчанию YEStrue.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • Предикат получателя.

    Объявление

    Swift

    var predicate: NSPredicate?

    Objective C

    @property(nonatomic, strong) NSPredicate *predicate

    Обсуждение

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

    Если предикат пуст — например, если это AND предикату, чей массив элементов не содержит предикатов — получатель, установили его предикат в nil. Для больше о предикатах, см. Руководство по программированию Предиката.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • fetchLimit fetchLimit Свойство

    Предел выборки получателя.

    Объявление

    Swift

    var fetchLimit: Int

    Objective C

    @property(nonatomic) NSUInteger fetchLimit

    Обсуждение

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

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    – fetchOffset

  • fetchOffset fetchOffset Свойство

    Смещение выборки получателя.

    Объявление

    Swift

    var fetchOffset: Int

    Objective C

    @property(nonatomic) NSUInteger fetchOffset

    Обсуждение

    Значение по умолчанию 0.

    Эта установка позволяет Вам указывать смещение, при котором строки начнут возвращаться. Эффективно, запрос перескочит через конкретное количество соответствия записей. Например, учитывая выборку, которая обычно возвращалась бы a, b, c, d, указание смещения 1 возвратится b, c, d, и смещение 4 возвратит пустой массив. Смещения проигнорированы во вложенных запросах, таких как подзапросы.

    Это может использоваться для ограничения рабочего набора данных. В сочетании с fetchLimit, можно создать поддиапазон произвольного набора результатов.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    – fetchLimit

  • fetchBatchSize fetchBatchSize Свойство

    Объем партии получателя.

    Объявление

    Swift

    var fetchBatchSize: Int

    Objective C

    @property(nonatomic) NSUInteger fetchBatchSize

    Обсуждение

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

    При установке ненулевого объема партии набор объектов возвратился, когда выборка выполняется, повреждается в пакеты. Когда выборка выполняется, весь запрос оценен, и идентификационные данные всех соответствующих объектов зарегистрированы, но не больше, чем batchSize данные объектов будут выбраны от персистентного хранилища за один раз. Массив, возвращенный из выполнения запроса, будет объектом прокси, прозрачно дающим сбой пакеты по требованию. (В условиях базы данных это - курсор в памяти.)

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

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    – fetchLimit

  • affectedStores affectedStores Свойство

    Персистентные хранилища указаны для получателя.

    Объявление

    Swift

    var affectedStores: [AnyObject]?

    Objective C

    @property(nonatomic, strong) NSArray *affectedStores

    Обсуждение

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • sortDescriptors sortDescriptors Свойство

    Дескрипторы вида получателя.

    Объявление

    Swift

    var sortDescriptors: [AnyObject]?

    Objective C

    @property(nonatomic, strong) NSArray *sortDescriptors

    Обсуждение

    Дескрипторы вида указывают, как объекты возвратились, когда запрос выборки выпущен, должен быть упорядочен — например, фамилией тогда именем. Дескрипторы вида применяются в порядке, в котором они появляются в sortDescriptors массив (последовательно в самом низком массиве индексируют первый порядок).

    Значение nil не обрабатывается как никакие дескрипторы вида.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    var relationshipKeyPathsForPrefetching: [AnyObject]?

    Objective C

    @property(nonatomic, copy) NSArray *relationshipKeyPathsForPrefetching

    Обсуждение

    Массив ключевого пути отношения представляет в виде строки в NSKeyValueCoding нотация (поскольку Вы обычно использовали бы с valueForKeyPath:). Значение по умолчанию является пустым массивом (никакая упреждающая выборка).

    Упреждающая выборка позволяет Базовым Данным получать связанные объекты в единственной выборке (на объект), вместо того, чтобы подвергаться последующему доступу к хранилищу для каждой отдельной записи, поскольку смещены их отказы. Например, учитывая объект Сотрудника с отношением к объекту Отдела, если Вы выбираете всех сотрудников тогда для каждого, распечатывают их имя и имя отдела, которому они принадлежат, может случиться так, что отказ должен быть уволен за каждый отдельный объект Отдела (для большего количества подробных данных, посмотрите Базовую Производительность Данных в Базовом Руководстве по программированию Данных). Это может представлять значительные издержки. Вы могли избежать этого путем упреждающей выборки отношения отдела в выборке Сотрудника, как проиллюстрировано в следующем примере:

    • NSManagedObjectContext *context = ...;
    • NSEntityDescription *employeeEntity = [NSEntityDescription
    • entityForName:@"Employee" inManagedObjectContext:context];
    • NSFetchRequest *request = [[NSFetchRequest alloc] init];
    • request.tntity = employeeEntity;
    • request.relationshipKeyPathsForPrefetching =
    • [NSArray arrayWithObject:@"department"]];

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • resultType resultType Свойство

    Тип результата получателя.

    Объявление

    Swift

    var resultType: NSFetchRequestResultType

    Objective C

    @property(nonatomic) NSFetchRequestResultType resultType

    Обсуждение

    Значение по умолчанию NSManagedObjectResultType.

    Если Вы устанавливаете значение в NSManagedObjectIDResultType, если Вы не будете включать значения свойств в запрос, это понизит в должности любые упорядочивания вида к подсказкам «максимальных усилий».

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    var includesPendingChanges: Bool

    Objective C

    @property(nonatomic) BOOL includesPendingChanges

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

    YEStrue если, когда выборка будет выполняться, она будет соответствовать против в настоящее время несохраняемых изменений в контексте управляемого объекта, иначе NOfalse.

    Обсуждение

    YEStrue если, когда выборка будет выполняться, она будет соответствовать против в настоящее время несохраняемых изменений в контексте управляемого объекта, иначе NOfalse. Значение по умолчанию YEStrue.

    Если значение NOfalse, пропуски запроса выборки, проверяющие несохраненные изменения и только, возвращают объекты, соответствовавшие предикат в персистентном хранилище.

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

    Значение YEStrue не поддерживается в сочетании с типом результата NSDictionaryResultType, включая вычисление итоговых результатов (такой как max и min). Для словарей массив возвратился из выборки, отражает текущее состояние в персистентном хранилище и не принимает во внимание незаконченных изменений, вставок или удалений в контексте.

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    var propertiesToFetch: [AnyObject]?

    Objective C

    @property(nonatomic, copy) NSArray *propertiesToFetch

    Обсуждение

    Описания свойства являются экземплярами NSPropertyDescription. Описания свойства могут представлять атрибуты, к - отношения или выражения. Имя атрибута или описания отношения должно соответствовать имя описания на объекте запроса выборки.

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

    Необходимо установить объект для запроса выборки прежде, чем установить это значение, иначе NSFetchRequest броски NSInvalidArgumentException исключение.

    Это значение только используется если resultType установлен в NSDictionaryResultType.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    var returnsDistinctResults: Bool

    Objective C

    @property(nonatomic) BOOL returnsDistinctResults

    Обсуждение

    YEStrue если, когда выборка выполняется, она возвращает только отличные значения для полей, указанных propertiesToFetch, иначе NOfalse. Значение по умолчанию NOfalse.

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    – propertiesToFetch

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

    Объявление

    Swift

    var includesPropertyValues: Bool

    Objective C

    @property(nonatomic) BOOL includesPropertyValues

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

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

    Обсуждение

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

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

    Во время нормальной выборки (includesPropertyValues YEStrue), Базовые Данные выбирают идентификатор объекта и данные свойства для соответствующих записей, заполняют кэш строки информацией и возвращают управляемый объект как отказы (см. returnsObjectsAsFaults). Эти отказы являются управляемыми объектами, но все их данные свойства все еще находятся в кэше строки, пока не запущен отказ. Когда отказ запущен, Базовые Данные получают данные от кэша строки — нет никакой потребности вернуться к базе данных.

    Если includesPropertyValues NOfalse, тогда Базовые Данные выбирают только информацию идентификатора объекта для соответствующих записей — это не заполняет кэш строки. Базовые Данные все еще возвращают управляемые объекты, так как им только нужен управляемый объект IDs для создания отказов. Однако, если Вы впоследствии запускаете отказ, Базовые взгляды Данных в (пустом) кэше строки, не находит данных, и затем возвращается к хранилищу во второй раз для данных.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    var shouldRefreshRefetchedObjects: Bool

    Objective C

    @property(nonatomic) BOOL shouldRefreshRefetchedObjects

    Обсуждение

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

    По умолчанию, когда Вы выбираете объекты, они поддерживают свои текущие значения свойств, даже если изменились значения в персистентном хранилище. Путем вызова этого метода с параметром YEStrue, когда выборка выполняется значения свойств выбранных объектов, которые будут обновлены с текущей стоимостью в персистентном хранилище. Это обеспечивает более удобный способ гарантировать, что значения свойств управляемого объекта являются соответствующими хранилищу, чем при помощи refreshObject:mergeChanges: (NSManagedObjetContext) для многократных объектов поочередно.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    var returnsObjectsAsFaults: Bool

    Objective C

    @property(nonatomic) BOOL returnsObjectsAsFaults

    Обсуждение

    YEStrue если объекты, следующие из выборки с помощью получателя, являются отказами, иначе NOfalse. Значение по умолчанию YEStrue. Эта установка не используется, если тип результата (см. resultType) NSManagedObjectIDResultType, поскольку идентификаторы объектов не имеют значений свойств. Можно установить returnsObjectsAsFaults к NOfalse для получения выигрыша в производительности, если Вы знаете, необходимо будет получить доступ к значениям свойств от возвращенных объектов.

    По умолчанию, когда Вы выполняете выборку returnsObjectsAsFaults YEStrue; Базовые Данные выбирают данные объектов для соответствующих записей, заполняют кэш строки информацией и возвращают управляемый объект как отказы. Эти отказы являются управляемыми объектами, но все их данные свойства находятся в кэше строки, пока не запущен отказ. Когда отказ запущен, Базовые Данные получают данные от кэша строки. Несмотря на то, что издержки для этой работы являются маленькими, для больших наборов данных это может стать нетривиальным. Если необходимо получить доступ к значениям свойств от возвращенных объектов (например, если Вы выполняете итерации по всем объектам вычислить среднее значение определенного атрибута), то более эффективно установить returnsObjectsAsFaults к NOfalse избегать дополнительных издержек.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • Массив объектов, указывающих, как данные должны быть сгруппированы перед избранным оператором, выполняется в базе данных SQL.

    Объявление

    Swift

    var propertiesToGroupBy: [AnyObject]?

    Objective C

    @property(nonatomic, copy) NSArray *propertiesToGroupBy

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

    Массив NSPropertyDescription или NSExpressionDescription объекты или строки ключевого пути, указывающие, как данные должны быть сгруппированы перед избранным оператором, выполняются в базе данных SQL.

    Обсуждение

    Массив NSPropertyDescription или NSExpressionDescription объекты или строки ключевого пути, указывающие, как данные должны быть сгруппированы перед избранным оператором, выполняются в базе данных SQL.

    Если Вы используете эту установку, то необходимо установить resultType к NSDictionaryResultType, и значения SELECT должны быть литералами, агрегируется, или столбцы, указанные в GROUP BY. Агрегаты будут воздействовать на группы, указанные в GROUP BY, а не целой таблице. При установке свойств для группировки, можно также установить предикат наличия — посмотрите havingPredicate.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    havingPredicate

  • havingPredicate havingPredicate Свойство

    Предикат раньше фильтровал строки, возвращаемые запросом, содержащим GROUP BY.

    Объявление

    Swift

    var havingPredicate: NSPredicate?

    Objective C

    @property(nonatomic, strong) NSPredicate *havingPredicate

    Обсуждение

    Если предикат наличия будет предоставлен, то он будет выполнен после GROUP BY. Указание предиката HAVING требует, чтобы также был указан GROUP BY. Для обсуждения GROUP BY посмотрите setPropertiesToGroupBy:.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    – setPropertiesToGroupBy:

  • Эти константы указывают возможные типы результата, которые может возвратить запрос выборки.

    Объявление

    Swift

    struct NSFetchRequestResultType : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var ManagedObjectResultType: NSFetchRequestResultType { get } static var ManagedObjectIDResultType: NSFetchRequestResultType { get } static var DictionaryResultType: NSFetchRequestResultType { get } static var CountResultType: NSFetchRequestResultType { get } }

    Objective C

    enum { NSManagedObjectResultType = 0x00, NSManagedObjectIDResultType = 0x01, NSDictionaryResultType = 0x02 NSCountResultType = 0x04 }; typedef NSUInteger NSFetchRequestResultType;

    Константы

    • ManagedObjectResultType

      NSManagedObjectResultType

      Указывает, что запрос возвращает управляемые объекты.

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

    • ManagedObjectIDResultType

      NSManagedObjectIDResultType

      Указывает, что запрос возвращает управляемый объект IDs.

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

    • DictionaryResultType

      NSDictionaryResultType

      Указывает, что запрос возвращает словари.

      См. также includesPendingChanges и propertiesToFetch.

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

    • CountResultType

      NSCountResultType

      Указывает, что запрос возвращает количество объектов, соответствующих запрос.

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

    Обсуждение

    Эти константы используются resultType.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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