BaseDataTransaction
public class BaseDataTransaction
extension BaseDataTransaction: FetchableSource, QueryableSource
The BaseDataTransaction
is an abstract interface for NSManagedObject
creates, updates, and deletes. All BaseDataTransaction
subclasses manage a private NSManagedObjectContext
which are direct children of the NSPersistentStoreCoordinator
‘s root NSManagedObjectContext
. This means that all updates are saved first to the persistent store, and then propagated up to the read-only NSManagedObjectContext
.
-
Indicates if the transaction has pending changes
Declaration
Swift
public var hasChanges: Bool { get }
-
Creates a new
NSManagedObject
orCoreStoreObject
with the specified entity type.Declaration
Swift
public func create<O>(_ into: Into<O>) -> O where O : DynamicObject
Parameters
into
the
Into
clause indicating the destinationNSManagedObject
orCoreStoreObject
entity type and the destination configurationReturn Value
a new
NSManagedObject
orCoreStoreObject
instance of the specified entity type. -
Returns an editable proxy of a specified
NSManagedObject
orCoreStoreObject
.Declaration
Swift
public func edit<O>(_ object: O?) -> O? where O : DynamicObject
Parameters
object
the
NSManagedObject
orCoreStoreObject
type to be editedReturn Value
an editable proxy for the specified
NSManagedObject
orCoreStoreObject
. -
Returns an editable proxy of the object with the specified
NSManagedObjectID
.Declaration
Swift
public func edit<O>(_ into: Into<O>, _ objectID: NSManagedObjectID) -> O? where O : DynamicObject
Parameters
into
an
Into
clause specifying the entity typeobjectID
the
NSManagedObjectID
for the object to be editedReturn Value
an editable proxy for the specified
NSManagedObject
orCoreStoreObject
. -
Deletes the objects with the specified
NSManagedObjectID
s.Declaration
Swift
public func delete<S>(objectIDs: S) where S : Sequence, S.Element : NSManagedObjectID
Parameters
objectIDs
the
NSManagedObjectID
s of the objects to delete -
Deletes the specified
NSManagedObject
s orCoreStoreObject
s represented by series ofObjectRepresentation
s.Declaration
Swift
public func delete<O>(_ object: O?, _ objects: O?...) where O : ObjectRepresentation
Parameters
object
the
ObjectRepresentation
representing anNSManagedObject
orCoreStoreObject
to be deletedobjects
other
ObjectRepresentation
s representingNSManagedObject
s orCoreStoreObject
s to be deleted -
Deletes the specified
NSManagedObject
s orCoreStoreObject
s represented by anObjectRepresenation
.Declaration
Swift
public func delete<S>(_ objects: S) where S : Sequence, S.Element : ObjectRepresentation
Parameters
objects
the
ObjectRepresenation
s representingNSManagedObject
s orCoreStoreObject
s to be deleted -
Refreshes all registered objects
NSManagedObject
s in the transaction.Declaration
Swift
public func refreshAndMergeAllObjects()
-
Returns
true
if the object has any property values changed. This method should not be called after thecommit()
method was called.Declaration
Swift
public func objectHasPersistentChangedValues<O>(_ object: O) -> Bool where O : DynamicObject
Parameters
object
the
DynamicObject
instanceReturn Value
true
if the object has any property values changed. -
Returns all pending
DynamicObject
s of the specified type that were inserted to the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func insertedObjects<O>(_ entity: O.Type) -> Set<O> where O : DynamicObject, O : Hashable
Parameters
entity
the
DynamicObject
subclass to filterReturn Value
a
Set
of pendingDynamicObject
s of the specified type that were inserted to the transaction. -
Returns all pending
NSManagedObjectID
s that were inserted to the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func insertedObjectIDs() -> Set<NSManagedObjectID>
Return Value
a
Set
of pendingNSManagedObjectID
s that were inserted to the transaction. -
Returns all pending
NSManagedObjectID
s of the specified type that were inserted to the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func insertedObjectIDs<O>(_ entity: O.Type) -> Set<NSManagedObjectID> where O : DynamicObject
Parameters
entity
the
DynamicObject
subclass to filterReturn Value
a
Set
of pendingNSManagedObjectID
s of the specified type that were inserted to the transaction. -
Returns all pending
DynamicObject
s of the specified type that were updated in the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func updatedObjects<O>(_ entity: O.Type) -> Set<O> where O : DynamicObject, O : Hashable
Parameters
entity
the
DynamicObject
subclass to filterReturn Value
a
Set
of pendingDynamicObject
s of the specified type that were updated in the transaction. -
Returns all pending
NSManagedObjectID
s that were updated in the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func updatedObjectIDs() -> Set<NSManagedObjectID>
Return Value
a
Set
of pendingNSManagedObjectID
s that were updated in the transaction. -
Returns all pending
NSManagedObjectID
s of the specified type that were updated in the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func updatedObjectIDs<O>(_ entity: O.Type) -> Set<NSManagedObjectID> where O : DynamicObject
Parameters
entity
the
DynamicObject
subclass to filterReturn Value
a
Set
of pendingNSManagedObjectID
s of the specified type that were updated in the transaction. -
Returns all pending
DynamicObject
s of the specified type that were deleted from the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func deletedObjects<O>(_ entity: O.Type) -> Set<O> where O : DynamicObject, O : Hashable
Parameters
entity
the
DynamicObject
subclass to filterReturn Value
a
Set
of pendingDynamicObject
s of the specified type that were deleted from the transaction. -
Returns all pending
NSManagedObjectID
s of the specified type that were deleted from the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func deletedObjectIDs() -> Set<NSManagedObjectID>
Parameters
entity
the
DynamicObject
subclass to filterReturn Value
a
Set
of pendingNSManagedObjectID
s of the specified type that were deleted from the transaction. -
Returns all pending
NSManagedObjectID
s of the specified type that were deleted from the transaction. This method should not be called after thecommit()
method was called.Declaration
Swift
public func deletedObjectIDs<O>(_ entity: O.Type) -> Set<NSManagedObjectID> where O : DynamicObject
Parameters
entity
the
DynamicObject
subclass to filterReturn Value
a
Set
of pendingNSManagedObjectID
s of the specified type that were deleted from the transaction.
-
An arbitrary value that identifies the source of this transaction. Callers of the transaction can provide this value through the
DataStack.perform(...)
methods.Declaration
Swift
public let sourceIdentifier: Any?
-
Allow external libraries to store custom data in the transaction. App code should rarely have a need for this.
enum Static { static var myDataKey: Void? } transaction.userInfo[&Static.myDataKey] = myObject
Important
Do not use this method to store thread-sensitive data.Declaration
Swift
public let userInfo: UserInfo
-
Creates an
ImportableObject
by importing from the specified import source.Declaration
Swift
public func importObject<O: ImportableObject>( _ into: Into<O>, source: O.ImportSource) throws -> O?
Parameters
into
an
Into
clause specifying the entity typesource
the object to import values from
Return Value
the created
ImportableObject
instance, ornil
if the import was ignored -
Updates an existing
ImportableObject
by importing values from the specified import source.Declaration
Swift
public func importObject<O: ImportableObject>( _ object: O, source: O.ImportSource) throws
Parameters
object
the
ImportableObject
to updatesource
the object to import values from
-
Creates multiple
ImportableObject
s by importing from the specified array of import sources.Declaration
Swift
public func importObjects<O: ImportableObject, S: Sequence>( _ into: Into<O>, sourceArray: S) throws -> [O] where S.Iterator.Element == O.ImportSource
Parameters
into
an
Into
clause specifying the entity typesourceArray
the array of objects to import values from
Return Value
the array of created
ImportableObject
instances -
Updates an existing
ImportableUniqueObject
or creates a new instance by importing from the specified import source.Declaration
Swift
public func importUniqueObject<O: ImportableUniqueObject>( _ into: Into<O>, source: O.ImportSource) throws -> O?
Parameters
into
an
Into
clause specifying the entity typesource
the object to import values from
Return Value
the created/updated
ImportableUniqueObject
instance, ornil
if the import was ignored -
Updates existing
ImportableUniqueObject
s or creates them by importing from the specified array of import sources.ImportableUniqueObject
methods are called on the objects in the same order as they are in thesourceArray
, and are returned in an array with that same order.Warning
If
sourceArray
contains multiple import sources with same ID, only the lastImportSource
of the duplicates will be imported.Throws
an
Error
thrown from any of theImportableUniqueObject
methodsDeclaration
Swift
public func importUniqueObjects<O: ImportableUniqueObject, S: Sequence>( _ into: Into<O>, sourceArray: S, preProcess: @escaping (_ mapping: [O.UniqueIDType: O.ImportSource]) throws -> [O.UniqueIDType: O.ImportSource] = { $0 }) throws -> [O] where S.Iterator.Element == O.ImportSource
Parameters
into
an
Into
clause specifying the entity typesourceArray
the array of objects to import values from
preProcess
a closure that lets the caller tweak the internal
UniqueIDType
-to-ImportSource
mapping to be used for importing. Callers can remove from/add to/updatemapping
and return the updated array from the closure.Return Value
the array of created/updated
ImportableUniqueObject
instances
-
Deletes all
DynamicObject
s that satisfy the specifiedDeleteClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Declaration
Swift
@discardableResult public func deleteAll<O>(_ from: From<O>, _ deleteClauses: DeleteClause...) throws -> Int where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typedeleteClauses
a series of
DeleteClause
instances for the delete request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the number of
DynamicObject
s deleted -
Deletes all
DynamicObject
s that satisfy the specifiedDeleteClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Declaration
Swift
@discardableResult public func deleteAll<O>(_ from: From<O>, _ deleteClauses: [DeleteClause]) throws -> Int where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typedeleteClauses
a series of
DeleteClause
instances for the delete request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the number of
DynamicObject
s deleted -
Deletes all
DynamicObject
s that satisfy the specified conditions.transaction.deleteAll(From<Person>().where(\.age > 50))
Declaration
Swift
@discardableResult public func deleteAll<B>(_ clauseChain: B) throws -> Int where B : FetchChainableBuilderType
Parameters
clauseChain
a
FetchChainableBuilderType
clause chain created from aFrom
clauseReturn Value
the number of
DynamicObject
s deleted
-
Fetches the
DynamicObject
instance in the transaction’s context from a reference created from a transaction or from a different managed object context.Declaration
Swift
public func fetchExisting<O>(_ object: O) -> O? where O : DynamicObject
Parameters
object
a reference to the object created/fetched outside the transaction
Return Value
the
DynamicObject
instance if the object exists in the transaction, ornil
if not found. -
Fetches the
DynamicObject
instance in the transaction’s context from anNSManagedObjectID
.Declaration
Swift
public func fetchExisting<O>(_ objectID: NSManagedObjectID) -> O? where O : DynamicObject
Parameters
objectID
the
NSManagedObjectID
for the objectReturn Value
the
DynamicObject
instance if the object exists in the transaction, ornil
if not found. -
Fetches the
DynamicObject
instances in the transaction’s context from references created from a transaction or from a different managed object context.Declaration
Swift
public func fetchExisting<O, S>(_ objects: S) -> [O] where O : DynamicObject, O == S.Element, S : Sequence
Parameters
objects
an array of
DynamicObject
s created/fetched outside the transactionReturn Value
the
DynamicObject
array for objects that exists in the transaction -
Fetches the
DynamicObject
instances in the transaction’s context from a list ofNSManagedObjectID
.Declaration
Swift
public func fetchExisting<O, S>(_ objectIDs: S) -> [O] where O : DynamicObject, S : Sequence, S.Element == NSManagedObjectID
Parameters
objectIDs
the
NSManagedObjectID
array for the objectsReturn Value
the
DynamicObject
array for objects that exists in the transaction -
Fetches the first
DynamicObject
instance that satisfies the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchOne<O>(_ from: From<O>, _ fetchClauses: FetchClause...) throws -> O? where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the first
DynamicObject
instance that satisfies the specifiedFetchClause
s, ornil
if no match was found -
Fetches the first
DynamicObject
instance that satisfies the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchOne<O>(_ from: From<O>, _ fetchClauses: [FetchClause]) throws -> O? where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the first
DynamicObject
instance that satisfies the specifiedFetchClause
s, ornil
if no match was found -
Fetches the first
DynamicObject
instance that satisfies the specifiedFetchChainableBuilderType
built from a chain of clauses.let youngestTeen = transaction.fetchOne( From<MyPersonEntity>() .where(\.age > 18) .orderBy(.ascending(\.age)) )
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchOne<B>(_ clauseChain: B) throws -> B.ObjectType? where B : FetchChainableBuilderType
Parameters
clauseChain
a
FetchChainableBuilderType
built from a chain of clausesReturn Value
the first
DynamicObject
instance that satisfies the specifiedFetchChainableBuilderType
, ornil
if no match was found -
Fetches all
DynamicObject
instances that satisfy the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchAll<O>(_ from: From<O>, _ fetchClauses: FetchClause...) throws -> [O] where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
all
DynamicObject
instances that satisfy the specifiedFetchClause
s, or an empty array if no match was found -
Fetches all
DynamicObject
instances that satisfy the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchAll<O>(_ from: From<O>, _ fetchClauses: [FetchClause]) throws -> [O] where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
all
DynamicObject
instances that satisfy the specifiedFetchClause
s, or an empty array if no match was found -
Fetches all
DynamicObject
instances that satisfy the specifiedFetchChainableBuilderType
built from a chain of clauses.let people = transaction.fetchAll( From<MyPersonEntity>() .where(\.age > 18) .orderBy(.ascending(\.age)) )
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchAll<B>(_ clauseChain: B) throws -> [B.ObjectType] where B : FetchChainableBuilderType
Parameters
clauseChain
a
FetchChainableBuilderType
built from a chain of clausesReturn Value
all
DynamicObject
instances that satisfy the specifiedFetchChainableBuilderType
, or an empty array if no match was found -
Fetches the number of
DynamicObject
s that satisfy the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchCount<O>(_ from: From<O>, _ fetchClauses: FetchClause...) throws -> Int where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the number of
DynamicObject
s that satisfy the specifiedFetchClause
s -
Fetches the number of
DynamicObject
s that satisfy the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchCount<O>(_ from: From<O>, _ fetchClauses: [FetchClause]) throws -> Int where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the number of
DynamicObject
s that satisfy the specifiedFetchClause
s -
Fetches the number of
DynamicObject
s that satisfy the specifiedFetchChainableBuilderType
built from a chain of clauses.let numberOfAdults = transaction.fetchCount( From<MyPersonEntity>() .where(\.age > 18) .orderBy(.ascending(\.age)) )
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchCount<B>(_ clauseChain: B) throws -> Int where B : FetchChainableBuilderType
Parameters
clauseChain
a
FetchChainableBuilderType
built from a chain of clausesReturn Value
the number of
DynamicObject
s that satisfy the specifiedFetchChainableBuilderType
-
Fetches the
NSManagedObjectID
for the firstDynamicObject
that satisfies the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchObjectID<O>(_ from: From<O>, _ fetchClauses: FetchClause...) throws -> NSManagedObjectID? where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the
NSManagedObjectID
for the firstDynamicObject
that satisfies the specifiedFetchClause
s, ornil
if no match was found -
Fetches the
NSManagedObjectID
for the firstDynamicObject
that satisfies the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchObjectID<O>(_ from: From<O>, _ fetchClauses: [FetchClause]) throws -> NSManagedObjectID? where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the
NSManagedObjectID
for the firstDynamicObject
that satisfies the specifiedFetchClause
s, ornil
if no match was found -
Fetches the
NSManagedObjectID
for the firstDynamicObject
that satisfies the specifiedFetchChainableBuilderType
built from a chain of clauses.let youngestTeenID = transaction.fetchObjectID( From<MyPersonEntity>() .where(\.age > 18) .orderBy(.ascending(\.age)) )
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchObjectID<B>(_ clauseChain: B) throws -> NSManagedObjectID? where B : FetchChainableBuilderType
Parameters
clauseChain
a
FetchChainableBuilderType
built from a chain of clausesReturn Value
the
NSManagedObjectID
for the firstDynamicObject
that satisfies the specifiedFetchChainableBuilderType
, ornil
if no match was found -
Fetches the
NSManagedObjectID
for allDynamicObject
s that satisfy the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchObjectIDs<O>(_ from: From<O>, _ fetchClauses: FetchClause...) throws -> [NSManagedObjectID] where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the
NSManagedObjectID
for allDynamicObject
s that satisfy the specifiedFetchClause
s, or an empty array if no match was found -
Fetches the
NSManagedObjectID
for allDynamicObject
s that satisfy the specifiedFetchClause
s. AcceptsWhere
,OrderBy
, andTweak
clauses.Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchObjectIDs<O>(_ from: From<O>, _ fetchClauses: [FetchClause]) throws -> [NSManagedObjectID] where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typefetchClauses
a series of
FetchClause
instances for the fetch request. AcceptsWhere
,OrderBy
, andTweak
clauses.Return Value
the
NSManagedObjectID
for allDynamicObject
s that satisfy the specifiedFetchClause
s, or an empty array if no match was found -
Fetches the
NSManagedObjectID
for allDynamicObject
s that satisfy the specifiedFetchChainableBuilderType
built from a chain of clauses.let idsOfAdults = transaction.fetchObjectIDs( From<MyPersonEntity>() .where(\.age > 18) .orderBy(.ascending(\.age)) )
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func fetchObjectIDs<B>(_ clauseChain: B) throws -> [NSManagedObjectID] where B : FetchChainableBuilderType
Parameters
clauseChain
a
FetchChainableBuilderType
built from a chain of clausesReturn Value
the
NSManagedObjectID
for allDynamicObject
s that satisfy the specifiedFetchChainableBuilderType
, or an empty array if no match was found
-
Queries aggregate values as specified by the
QueryClause
s. Requires at least aSelect
clause, and optionalWhere
,OrderBy
,GroupBy
, andTweak
clauses.A “query” differs from a “fetch” in that it only retrieves values already stored in the persistent store. As such, values from unsaved transactions or contexts will not be incorporated in the query result.
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func queryValue<O, U>(_ from: From<O>, _ selectClause: Select<O, U>, _ queryClauses: QueryClause...) throws -> U? where O : DynamicObject, U : QueryableAttributeType
Parameters
from
a
From
clause indicating the entity typeselectClause
a
Select<U>
clause indicating the properties to fetch, and with the generic type indicating the return type.queryClauses
a series of
QueryClause
instances for the query request. AcceptsWhere
,OrderBy
,GroupBy
, andTweak
clauses.Return Value
the result of the the query, or
nil
if no match was found. The type of the return value is specified by the generic type of theSelect<U>
parameter. -
Queries aggregate values or aggregates as specified by the
QueryClause
s. Requires at least aSelect
clause, and optionalWhere
,OrderBy
,GroupBy
, andTweak
clauses.A “query” differs from a “fetch” in that it only retrieves values already stored in the persistent store. As such, values from unsaved transactions or contexts will not be incorporated in the query result.
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func queryValue<O, U>(_ from: From<O>, _ selectClause: Select<O, U>, _ queryClauses: [QueryClause]) throws -> U? where O : DynamicObject, U : QueryableAttributeType
Parameters
from
a
From
clause indicating the entity typeselectClause
a
Select<U>
clause indicating the properties to fetch, and with the generic type indicating the return type.queryClauses
a series of
QueryClause
instances for the query request. AcceptsWhere
,OrderBy
,GroupBy
, andTweak
clauses.Return Value
the result of the the query, or
nil
if no match was found. The type of the return value is specified by the generic type of theSelect<U>
parameter. -
Queries a property value or aggregate as specified by the
QueryChainableBuilderType
built from a chain of clauses.A “query” differs from a “fetch” in that it only retrieves values already stored in the persistent store. As such, values from unsaved transactions or contexts will not be incorporated in the query result.
let averageAdultAge = transaction.queryValue( From<MyPersonEntity>() .select(Int.self, .average(\.age)) .where(\.age > 18) )
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func queryValue<B>(_ clauseChain: B) throws -> B.ResultType? where B : QueryChainableBuilderType, B.ResultType : QueryableAttributeType
Parameters
clauseChain
a
QueryChainableBuilderType
indicating the property/aggregate to fetch and the series of queries for the request.Return Value
the result of the the query as specified by the
QueryChainableBuilderType
, ornil
if no match was found. -
Queries a dictionary of attribute values as specified by the
QueryClause
s. Requires at least aSelect
clause, and optionalWhere
,OrderBy
,GroupBy
, andTweak
clauses.A “query” differs from a “fetch” in that it only retrieves values already stored in the persistent store. As such, values from unsaved transactions or contexts will not be incorporated in the query result.
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func queryAttributes<O>(_ from: From<O>, _ selectClause: Select<O, NSDictionary>, _ queryClauses: QueryClause...) throws -> [[String : Any]] where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typeselectClause
a
Select<U>
clause indicating the properties to fetch, and with the generic type indicating the return type.queryClauses
a series of
QueryClause
instances for the query request. AcceptsWhere
,OrderBy
,GroupBy
, andTweak
clauses.Return Value
the result of the the query. The type of the return value is specified by the generic type of the
Select<U>
parameter. -
Queries a dictionary of attribute values as specified by the
QueryClause
s. Requires at least aSelect
clause, and optionalWhere
,OrderBy
,GroupBy
, andTweak
clauses.A “query” differs from a “fetch” in that it only retrieves values already stored in the persistent store. As such, values from unsaved transactions or contexts will not be incorporated in the query result.
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func queryAttributes<O>(_ from: From<O>, _ selectClause: Select<O, NSDictionary>, _ queryClauses: [QueryClause]) throws -> [[String : Any]] where O : DynamicObject
Parameters
from
a
From
clause indicating the entity typeselectClause
a
Select<U>
clause indicating the properties to fetch, and with the generic type indicating the return type.queryClauses
a series of
QueryClause
instances for the query request. AcceptsWhere
,OrderBy
,GroupBy
, andTweak
clauses.Return Value
the result of the the query. The type of the return value is specified by the generic type of the
Select<U>
parameter. -
Queries a dictionary of attribute values or as specified by the
QueryChainableBuilderType
built from a chain of clauses.A “query” differs from a “fetch” in that it only retrieves values already stored in the persistent store. As such, values from unsaved transactions or contexts will not be incorporated in the query result.
let results = dataStack.queryAttributes( From<MyPersonEntity>() .select( NSDictionary.self, .attribute(\.age, as: "age"), .count(\.age, as: "numberOfPeople") ) .groupBy(\.age) ) for dictionary in results! { let age = dictionary["age"] as! Int let count = dictionary["numberOfPeople"] as! Int print("There are \(count) people who are \(age) years old." }
Throws
CoreStoreError.persistentStoreNotFound
if the specified entity could not be found in any store’s schema.Declaration
Swift
public func queryAttributes<B>(_ clauseChain: B) throws -> [[String : Any]] where B : QueryChainableBuilderType, B.ResultType == NSDictionary
Parameters
clauseChain
a
QueryChainableBuilderType
indicating the properties to fetch and the series of queries for the request.Return Value
the result of the the query as specified by the
QueryChainableBuilderType
-
The internal
NSManagedObjectContext
managed by this instance. Using this context directly should typically be avoided, and is provided by CoreStore only for extremely specialized cases.Declaration
Swift
public func unsafeContext() -> NSManagedObjectContext