Tighter generics implementations. You can now pass any SequenceType's for methods that previously only accepts Array's.

This commit is contained in:
John Rommel Estropia
2015-09-19 18:20:52 +09:00
parent 7451fbe026
commit 114b7ce605
10 changed files with 33 additions and 80 deletions

View File

@@ -167,7 +167,7 @@ public /*abstract*/ class BaseDataTransaction {
*/
public func delete(object1: NSManagedObject?, _ object2: NSManagedObject?, _ objects: NSManagedObject?...) {
self.delete([object1, object2] + objects)
self.delete(([object1, object2] + objects).flatMap { $0 })
}
/**
@@ -175,7 +175,7 @@ public /*abstract*/ class BaseDataTransaction {
- parameter objects: the `NSManagedObject`s to be deleted
*/
public func delete(objects: [NSManagedObject?]) {
public func delete<S: SequenceType where S.Generator.Element == NSManagedObject>(objects: S) {
CoreStore.assert(
self.bypassesQueueing || self.transactionQueue.isCurrentExecutionContext(),
@@ -183,10 +183,7 @@ public /*abstract*/ class BaseDataTransaction {
)
let context = self.context
for case let object? in objects {
context.fetchExisting(object)?.deleteFromContext()
}
objects.forEach { context.fetchExisting($0)?.deleteFromContext() }
}
// MARK: Saving changes