mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-03-22 17:39:52 +01:00
added utilities to get existing NSManagedObject instances using object IDs
This commit is contained in:
@@ -31,6 +31,50 @@ public extension CoreStore {
|
|||||||
|
|
||||||
// MARK: Public
|
// MARK: Public
|
||||||
|
|
||||||
|
/**
|
||||||
|
Using the `defaultStack`, fetches the `NSManagedObject` instance in the `DataStack`'s context from a reference created from a transaction or from a different managed object context.
|
||||||
|
|
||||||
|
- parameter object: a reference to the object created/fetched outside the `DataStack`
|
||||||
|
- returns: the `NSManagedObject` instance if the object exists in the `DataStack`, or `nil` if not found.
|
||||||
|
*/
|
||||||
|
public static func fetchExisting<T: NSManagedObject>(object: T) -> T? {
|
||||||
|
|
||||||
|
return self.defaultStack.fetchExisting(object)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Using the `defaultStack`, fetches the `NSManagedObject` instance in the `DataStack`'s context from an `NSManagedObjectID`.
|
||||||
|
|
||||||
|
- parameter objectID: the `NSManagedObjectID` for the object
|
||||||
|
- returns: the `NSManagedObject` instance if the object exists in the `DataStack`, or `nil` if not found.
|
||||||
|
*/
|
||||||
|
public static func fetchExisting<T: NSManagedObject>(objectID: NSManagedObjectID) -> T? {
|
||||||
|
|
||||||
|
return self.defaultStack.fetchExisting(objectID)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Using the `defaultStack`, fetches the `NSManagedObject` instances in the `DataStack`'s context from references created from a transaction or from a different managed object context.
|
||||||
|
|
||||||
|
- parameter objects: an array of `NSManagedObject`s created/fetched outside the `DataStack`
|
||||||
|
- returns: the `NSManagedObject` array for objects that exists in the `DataStack`
|
||||||
|
*/
|
||||||
|
public static func fetchExisting<T: NSManagedObject>(objects: [T]) -> [T] {
|
||||||
|
|
||||||
|
return self.defaultStack.fetchExisting(objects)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Using the `defaultStack`, fetches the `NSManagedObject` instances in the `DataStack`'s context from a list of `NSManagedObjectID`.
|
||||||
|
|
||||||
|
- parameter objectIDs: the `NSManagedObjectID` array for the objects
|
||||||
|
- returns: the `NSManagedObject` array for objects that exists in the `DataStack`
|
||||||
|
*/
|
||||||
|
public static func fetchExisting<T: NSManagedObject>(objectIDs: [NSManagedObjectID]) -> [T] {
|
||||||
|
|
||||||
|
return self.defaultStack.fetchExisting(objectIDs)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Using the `defaultStack`, fetches the first `NSManagedObject` instance that satisfies the specified `FetchClause`s. Accepts `Where`, `OrderBy`, and `Tweak` clauses.
|
Using the `defaultStack`, fetches the first `NSManagedObject` instance that satisfies the specified `FetchClause`s. Accepts `Where`, `OrderBy`, and `Tweak` clauses.
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,84 @@ public extension DataStack {
|
|||||||
|
|
||||||
// MARK: Public
|
// MARK: Public
|
||||||
|
|
||||||
|
/**
|
||||||
|
Fetches the `NSManagedObject` instance in the `DataStack`'s context from a reference created from a transaction or from a different managed object context.
|
||||||
|
|
||||||
|
- parameter object: a reference to the object created/fetched outside the `DataStack`
|
||||||
|
- returns: the `NSManagedObject` instance if the object exists in the `DataStack`, or `nil` if not found.
|
||||||
|
*/
|
||||||
|
public func fetchExisting<T: NSManagedObject>(object: T) -> T? {
|
||||||
|
|
||||||
|
do {
|
||||||
|
|
||||||
|
return (try self.mainContext.existingObjectWithID(object.objectID) as! T)
|
||||||
|
}
|
||||||
|
catch _ {
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Fetches the `NSManagedObject` instance in the `DataStack`'s context from an `NSManagedObjectID`.
|
||||||
|
|
||||||
|
- parameter objectID: the `NSManagedObjectID` for the object
|
||||||
|
- returns: the `NSManagedObject` instance if the object exists in the `DataStack`, or `nil` if not found.
|
||||||
|
*/
|
||||||
|
public func fetchExisting<T: NSManagedObject>(objectID: NSManagedObjectID) -> T? {
|
||||||
|
|
||||||
|
do {
|
||||||
|
|
||||||
|
return (try self.mainContext.existingObjectWithID(objectID) as! T)
|
||||||
|
}
|
||||||
|
catch _ {
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Fetches the `NSManagedObject` instances in the `DataStack`'s context from references created from a transaction or from a different managed object context.
|
||||||
|
|
||||||
|
- parameter objects: an array of `NSManagedObject`s created/fetched outside the `DataStack`
|
||||||
|
- returns: the `NSManagedObject` array for objects that exists in the `DataStack`
|
||||||
|
*/
|
||||||
|
public func fetchExisting<T: NSManagedObject>(objects: [T]) -> [T] {
|
||||||
|
|
||||||
|
var existingObjects = [T]()
|
||||||
|
for object in objects {
|
||||||
|
|
||||||
|
do {
|
||||||
|
|
||||||
|
let existingObject = try self.mainContext.existingObjectWithID(object.objectID) as! T
|
||||||
|
existingObjects.append(existingObject)
|
||||||
|
}
|
||||||
|
catch _ { }
|
||||||
|
}
|
||||||
|
return existingObjects
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Fetches the `NSManagedObject` instances in the `DataStack`'s context from a list of `NSManagedObjectID`.
|
||||||
|
|
||||||
|
- parameter objectIDs: the `NSManagedObjectID` array for the objects
|
||||||
|
- returns: the `NSManagedObject` array for objects that exists in the `DataStack`
|
||||||
|
*/
|
||||||
|
public func fetchExisting<T: NSManagedObject>(objectIDs: [NSManagedObjectID]) -> [T] {
|
||||||
|
|
||||||
|
var existingObjects = [T]()
|
||||||
|
for objectID in objectIDs {
|
||||||
|
|
||||||
|
do {
|
||||||
|
|
||||||
|
let existingObject = try self.mainContext.existingObjectWithID(objectID) as! T
|
||||||
|
existingObjects.append(existingObject)
|
||||||
|
}
|
||||||
|
catch _ { }
|
||||||
|
}
|
||||||
|
return existingObjects
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Fetches the first `NSManagedObject` instance that satisfies the specified `FetchClause`s. Accepts `Where`, `OrderBy`, and `Tweak` clauses.
|
Fetches the first `NSManagedObject` instance that satisfies the specified `FetchClause`s. Accepts `Where`, `OrderBy`, and `Tweak` clauses.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user