NSFetchRequest
Наследование
-
NSObject -
NSPersistentStoreRequest -
NSFetchRequest
-
NSObject -
NSPersistentStoreRequest -
NSFetchRequest
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSCopying -
NSObject
Оператор импорта
Swift
import CoreData
Objective C
@import CoreData;
Доступность
Доступный в iOS 3.0 и позже.
Экземпляр 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 для получения сохраненного запроса выборки по имени. Сохраненные запросы выборки могут включать заполнителей для подстановки переменных, и тем самым служить шаблонами для более позднего завершения. Шаблоны запроса выборки поэтому позволяют Вам предопределять запросы с переменными, которыми заменяют во время выполнения.
-
Возвращает запрос выборки, сконфигурированный с данным именем объекта.
Объявление
Objective C
+ (instancetype)fetchRequestWithEntityName:(NSString *)entityNameПараметры
entityNameИмя объекта для выборки.
Возвращаемое значение
Запрос выборки, сконфигурированный для выборки использования названного объекта
entityName.Обсуждение
Этот метод обеспечивает удобный способ сконфигурировать объект для запроса выборки, не имея необходимость получать
NSEntityDescriptionобъект. Когда выборка выполняется, запрос использует контекст управляемого объекта для нахождения объекта с именем. Модель, связанная с персистентным координатором хранилища контекста, должна содержать названный объектentityName.Оператор импорта
Objective C
@import CoreData;Доступность
Доступный в iOS 4.0 и позже.
См. также
-
Инициализирует запрос выборки, сконфигурированный с данным именем объекта
Объявление
Swift
convenience init(entityNameentityName: String)Objective C
- (instancetype)initWithEntityName:(NSString *)entityNameПараметры
entityNameИмя объекта для выборки.
Возвращаемое значение
Запрос выборки, сконфигурированный для выборки использования названного объекта
entityName.Обсуждение
Этот метод обеспечивает удобный способ сконфигурировать объект для запроса выборки, не имея необходимость получать
NSEntityDescriptionобъект. Когда выборка выполняется, запрос использует контекст управляемого объекта для нахождения объекта с именем. Модель, связанная с персистентным координатором хранилища контекста, должна содержать названный объектentityName.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 4.0 и позже.
-
entityNameСвойство -
entityСвойствоОбъект указан для получателя.
Объявление
Swift
var entity: NSEntityDescription?Objective C
@property(nonatomic, strong) NSEntityDescription *entityОператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
includesSubentitiesСвойствоБулево значение, указывающее, включает ли получатель подобъекты в результаты.
Объявление
Swift
var includesSubentities: BoolObjective C
@property(nonatomic) BOOL includesSubentitiesОбсуждение
YEStrueесли запрос будет включать все подобъекты объекта для запроса, иначеNOfalse. Значение по умолчаниюYEStrue.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
predicateСвойствоПредикат получателя.
Объявление
Swift
var predicate: NSPredicate?Objective C
@property(nonatomic, strong) NSPredicate *predicateОбсуждение
Предикат используется для ограничения выбора объектов, которые должен выбрать получатель. Для больше о предикатах, см. Руководство по программированию Предиката.
Если предикат пуст — например, если это
ANDпредикату, чей массив элементов не содержит предикатов — получатель, установили его предикат вnil. Для больше о предикатах, см. Руководство по программированию Предиката.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
fetchLimitСвойствоПредел выборки получателя.
Обсуждение
Предел выборки указывает максимальное количество объектов, которые запрос должен возвратить, когда выполняется.
Специальные замечания
При установлении предела выборки платформа прилагает максимальное усилие, но не гарантирует, для повышения эффективности. Для каждой объектно-ориентированной памяти кроме хранилища SQL запрос выборки, выполняемый с пределом выборки в действительности просто, выполняет неограниченную выборку и выбрасывает добровольное для строк.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
См. также
-
fetchOffsetСвойствоСмещение выборки получателя.
Обсуждение
Значение по умолчанию
0.Эта установка позволяет Вам указывать смещение, при котором строки начнут возвращаться. Эффективно, запрос перескочит через конкретное количество соответствия записей. Например, учитывая выборку, которая обычно возвращалась бы
a, b, c, d, указание смещения 1 возвратитсяb, c, d, и смещение 4 возвратит пустой массив. Смещения проигнорированы во вложенных запросах, таких как подзапросы.Это может использоваться для ограничения рабочего набора данных. В сочетании с
fetchLimit, можно создать поддиапазон произвольного набора результатов.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
См. также
-
fetchBatchSizeСвойствоОбъем партии получателя.
Обсуждение
Значение по умолчанию
0. Объем партии0обрабатывается как бесконечный, который отключает пакет, дающий сбой поведение.При установке ненулевого объема партии набор объектов возвратился, когда выборка выполняется, повреждается в пакеты. Когда выборка выполняется, весь запрос оценен, и идентификационные данные всех соответствующих объектов зарегистрированы, но не больше, чем
batchSizeданные объектов будут выбраны от персистентного хранилища за один раз. Массив, возвращенный из выполнения запроса, будет объектом прокси, прозрачно дающим сбой пакеты по требованию. (В условиях базы данных это - курсор в памяти.)Можно использовать эту функцию для ограничения рабочего набора данных в приложении. В сочетании с
fetchLimit, можно создать поддиапазон произвольного набора результатов.Специальные замечания
В целях потокобезопасности необходимо полагать, что прокси массива возвратился, когда выборка выполняется как принадлежавший контексту управляемого объекта, запрос выполняется против, и обработайте его, как будто это был управляемый объект, зарегистрированный в том контексте.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
См. также
-
affectedStoresСвойствоПерсистентные хранилища указаны для получателя.
Объявление
Swift
var affectedStores: [AnyObject]?Objective C
@property(nonatomic, strong) NSArray *affectedStoresОбсуждение
Содержание массива является идентификаторами для хранилищ, которые будут искаться, когда выполняется запрос выборки.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
sortDescriptorsСвойствоДескрипторы вида получателя.
Объявление
Swift
var sortDescriptors: [AnyObject]?Objective C
@property(nonatomic, strong) NSArray *sortDescriptorsОбсуждение
Дескрипторы вида указывают, как объекты возвратились, когда запрос выборки выпущен, должен быть упорядочен — например, фамилией тогда именем. Дескрипторы вида применяются в порядке, в котором они появляются в
sortDescriptorsмассив (последовательно в самом низком массиве индексируют первый порядок).Значение
nilне обрабатывается как никакие дескрипторы вида.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
relationshipKeyPathsForPrefetchingСвойствоКлюч отношения соединяет каналом для упреждающей выборки вместе с объектом для запроса.
Объявление
Swift
var relationshipKeyPathsForPrefetching: [AnyObject]?Objective C
@property(nonatomic, copy) NSArray *relationshipKeyPathsForPrefetchingОбсуждение
Массив ключевого пути отношения представляет в виде строки в
NSKeyValueCodingнотация (поскольку Вы обычно использовали бы сvalueForKeyPath:). Значение по умолчанию является пустым массивом (никакая упреждающая выборка).Упреждающая выборка позволяет Базовым Данным получать связанные объекты в единственной выборке (на объект), вместо того, чтобы подвергаться последующему доступу к хранилищу для каждой отдельной записи, поскольку смещены их отказы. Например, учитывая объект Сотрудника с отношением к объекту Отдела, если Вы выбираете всех сотрудников тогда для каждого, распечатывают их имя и имя отдела, которому они принадлежат, может случиться так, что отказ должен быть уволен за каждый отдельный объект Отдела (для большего количества подробных данных, посмотрите Базовую Производительность Данных в Базовом Руководстве по программированию Данных). Это может представлять значительные издержки. Вы могли избежать этого путем упреждающей выборки отношения отдела в выборке Сотрудника, как проиллюстрировано в следующем примере:
NSManagedObjectContext *context = ...;NSEntityDescription *employeeEntity = [NSEntityDescriptionentityForName:@"Employee" inManagedObjectContext:context];NSFetchRequest *request = [[NSFetchRequest alloc] init];request.tntity = employeeEntity;request.relationshipKeyPathsForPrefetching =[NSArray arrayWithObject:@"department"]];
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
resultTypeСвойствоТип результата получателя.
Объявление
Swift
var resultType: NSFetchRequestResultTypeObjective C
@property(nonatomic) NSFetchRequestResultType resultTypeОбсуждение
Значение по умолчанию
NSManagedObjectResultType.Если Вы устанавливаете значение в
NSManagedObjectIDResultType, если Вы не будете включать значения свойств в запрос, это понизит в должности любые упорядочивания вида к подсказкам «максимальных усилий».Специальные замечания
См. также
includesPendingChangesдля обсуждения взаимодействие результата вводит с тем, приняты ли незаконченные изменения во внимание.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
includesPendingChangesСвойствоБулево значение, указывающее, соответствует ли, когда выборка выполняется, оно против в настоящее время несохраняемых изменений в контексте управляемого объекта.
Объявление
Swift
var includesPendingChanges: BoolObjective 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Доступность
Доступный в iOS 3.0 и позже.
-
propertiesToFetchСвойствоМассив объектов описания свойства, указывающих, какие свойства должны быть возвращены выборкой.
Объявление
Swift
var propertiesToFetch: [AnyObject]?Objective C
@property(nonatomic, copy) NSArray *propertiesToFetchОбсуждение
Описания свойства являются экземплярами
NSPropertyDescription. Описания свойства могут представлять атрибуты, к - отношения или выражения. Имя атрибута или описания отношения должно соответствовать имя описания на объекте запроса выборки.Специальные замечания
Необходимо установить объект для запроса выборки прежде, чем установить это значение, иначе
NSFetchRequestброскиNSInvalidArgumentExceptionисключение.Это значение только используется если
resultTypeустановлен вNSDictionaryResultType.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
См. также
-
returnsDistinctResultsСвойствоБулево значение, указывающее, возвращает ли запрос выборки только отличные значения для полей, указанных
propertiesToFetch.Объявление
Swift
var returnsDistinctResults: BoolObjective C
@property(nonatomic) BOOL returnsDistinctResultsОбсуждение
YEStrueесли, когда выборка выполняется, она возвращает только отличные значения для полей, указанныхpropertiesToFetch, иначеNOfalse. Значение по умолчаниюNOfalse.Специальные замечания
Если значение было установлено для, это значение только используется
propertiesToFetch.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
См. также
-
includesPropertyValuesСвойствоБулево значение, указывающее, получены ли, когда выборка выполняется, данные свойства из персистентного хранилища.
Объявление
Swift
var includesPropertyValues: BoolObjective C
@property(nonatomic) BOOL includesPropertyValuesВозвращаемое значение
YEStrueесли, данные свойства получены из персистентного хранилища, иначе, когда выполняется выборкаNOfalse.Обсуждение
YEStrueесли, данные свойства получены из персистентного хранилища, иначе, когда выполняется выборкаNOfalse. Значение по умолчаниюYEStrue.Можно установить
includesPropertyValuesкNOfalseсокращать память наверху путем предотвращения создания объектов представлять значения свойств. Необходимо обычно только сделать так, однако, если Вы будете уверены, что или Вам не будут нужны фактические данные свойства, или у Вас уже есть информация в кэше строки, то иначе Вы подвергнетесь многократным прохождениям в базу данных.Во время нормальной выборки (
includesPropertyValuesYEStrue), Базовые Данные выбирают идентификатор объекта и данные свойства для соответствующих записей, заполняют кэш строки информацией и возвращают управляемый объект как отказы (см.returnsObjectsAsFaults). Эти отказы являются управляемыми объектами, но все их данные свойства все еще находятся в кэше строки, пока не запущен отказ. Когда отказ запущен, Базовые Данные получают данные от кэша строки — нет никакой потребности вернуться к базе данных.Если
includesPropertyValuesNOfalse, тогда Базовые Данные выбирают только информацию идентификатора объекта для соответствующих записей — это не заполняет кэш строки. Базовые Данные все еще возвращают управляемые объекты, так как им только нужен управляемый объект IDs для создания отказов. Однако, если Вы впоследствии запускаете отказ, Базовые взгляды Данных в (пустом) кэше строки, не находит данных, и затем возвращается к хранилищу во второй раз для данных.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
shouldRefreshRefetchedObjectsСвойствоБулево значение, указывающее, будут ли значения свойств выбранных объектов обновлены с текущей стоимостью в персистентном хранилище.
Объявление
Swift
var shouldRefreshRefetchedObjects: BoolObjective C
@property(nonatomic) BOOL shouldRefreshRefetchedObjectsОбсуждение
YEStrueесли значения свойств выбранных объектов будут обновлены с текущей стоимостью в персистентном хранилище, иначеNOfalse.По умолчанию, когда Вы выбираете объекты, они поддерживают свои текущие значения свойств, даже если изменились значения в персистентном хранилище. Путем вызова этого метода с параметром
YEStrue, когда выборка выполняется значения свойств выбранных объектов, которые будут обновлены с текущей стоимостью в персистентном хранилище. Это обеспечивает более удобный способ гарантировать, что значения свойств управляемого объекта являются соответствующими хранилищу, чем при помощиrefreshObject:mergeChanges:(NSManagedObjetContext) для многократных объектов поочередно.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
returnsObjectsAsFaultsСвойствоБулево значение, указывающее, являются ли объекты, следующие из выборки с помощью получателя, отказами.
Объявление
Swift
var returnsObjectsAsFaults: BoolObjective C
@property(nonatomic) BOOL returnsObjectsAsFaultsОбсуждение
YEStrueесли объекты, следующие из выборки с помощью получателя, являются отказами, иначеNOfalse. Значение по умолчаниюYEStrue. Эта установка не используется, если тип результата (см.resultType)NSManagedObjectIDResultType, поскольку идентификаторы объектов не имеют значений свойств. Можно установитьreturnsObjectsAsFaultsкNOfalseдля получения выигрыша в производительности, если Вы знаете, необходимо будет получить доступ к значениям свойств от возвращенных объектов.По умолчанию, когда Вы выполняете выборку
returnsObjectsAsFaultsYEStrue; Базовые Данные выбирают данные объектов для соответствующих записей, заполняют кэш строки информацией и возвращают управляемый объект как отказы. Эти отказы являются управляемыми объектами, но все их данные свойства находятся в кэше строки, пока не запущен отказ. Когда отказ запущен, Базовые Данные получают данные от кэша строки. Несмотря на то, что издержки для этой работы являются маленькими, для больших наборов данных это может стать нетривиальным. Если необходимо получить доступ к значениям свойств от возвращенных объектов (например, если Вы выполняете итерации по всем объектам вычислить среднее значение определенного атрибута), то более эффективно установитьreturnsObjectsAsFaultsкNOfalseизбегать дополнительных издержек.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
propertiesToGroupByСвойствоМассив объектов, указывающих, как данные должны быть сгруппированы перед избранным оператором, выполняется в базе данных 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Доступность
Доступный в iOS 5.0 и позже.
См. также
-
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Доступность
Доступный в iOS 5.0 и позже.
См. также
-
Эти константы указывают возможные типы результата, которые может возвратить запрос выборки.
Объявление
Swift
struct NSFetchRequestResultType : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: 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;Константы
-
ManagedObjectResultTypeNSManagedObjectResultTypeУказывает, что запрос возвращает управляемые объекты.
Доступный в iOS 3.0 и позже.
-
ManagedObjectIDResultTypeNSManagedObjectIDResultTypeУказывает, что запрос возвращает управляемый объект IDs.
Доступный в iOS 3.0 и позже.
-
DictionaryResultTypeNSDictionaryResultTypeУказывает, что запрос возвращает словари.
См. также
includesPendingChangesиpropertiesToFetch.Доступный в iOS 3.0 и позже.
-
CountResultTypeNSCountResultTypeУказывает, что запрос возвращает количество объектов, соответствующих запрос.
Доступный в iOS 3.0 и позже.
Обсуждение
Эти константы используются
resultType.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 3.0 и позже.
-
