remove queue asserts for detached transactions

This commit is contained in:
John Rommel Estropia
2015-07-26 09:27:00 +09:00
parent 106789d592
commit a34d2795af
5 changed files with 22 additions and 22 deletions

View File

@@ -54,7 +54,7 @@ public /*abstract*/ class BaseDataTransaction {
public func create<T: NSManagedObject>(into: Into<T>) -> T {
CoreStore.assert(
self.transactionQueue.isCurrentExecutionContext(),
self.bypassesQueueing || self.transactionQueue.isCurrentExecutionContext(),
"Attempted to create an entity of type \(typeName(T)) outside its designated queue."
)
@@ -107,7 +107,7 @@ public /*abstract*/ class BaseDataTransaction {
public func edit<T: NSManagedObject>(object: T?) -> T? {
CoreStore.assert(
self.transactionQueue.isCurrentExecutionContext(),
self.bypassesQueueing || self.transactionQueue.isCurrentExecutionContext(),
"Attempted to update an entity of type \(typeName(object)) outside its designated queue."
)
@@ -124,7 +124,7 @@ public /*abstract*/ class BaseDataTransaction {
public func edit<T: NSManagedObject>(into: Into<T>, _ objectID: NSManagedObjectID) -> T? {
CoreStore.assert(
self.transactionQueue.isCurrentExecutionContext(),
self.bypassesQueueing || self.transactionQueue.isCurrentExecutionContext(),
"Attempted to update an entity of type \(typeName(T)) outside its designated queue."
)
CoreStore.assert(
@@ -144,7 +144,7 @@ public /*abstract*/ class BaseDataTransaction {
public func delete(object: NSManagedObject?) {
CoreStore.assert(
self.transactionQueue.isCurrentExecutionContext(),
self.bypassesQueueing || self.transactionQueue.isCurrentExecutionContext(),
"Attempted to delete an entity outside its designated queue."
)
@@ -171,7 +171,7 @@ public /*abstract*/ class BaseDataTransaction {
public func delete(objects: [NSManagedObject?]) {
CoreStore.assert(
self.transactionQueue.isCurrentExecutionContext(),
self.bypassesQueueing || self.transactionQueue.isCurrentExecutionContext(),
"Attempted to delete entities outside their designated queue."
)
@@ -190,7 +190,7 @@ public /*abstract*/ class BaseDataTransaction {
public func rollback() {
CoreStore.assert(
self.transactionQueue.isCurrentExecutionContext(),
self.bypassesQueueing || self.transactionQueue.isCurrentExecutionContext(),
"Attempted to rollback a \(typeName(self)) outside its designated queue."
)
@@ -220,4 +220,9 @@ public /*abstract*/ class BaseDataTransaction {
context.parentTransaction = self
}
internal var bypassesQueueing: Bool {
return false
}
}

View File

@@ -43,16 +43,19 @@ public final class DetachedDataTransaction: BaseDataTransaction {
*/
public func commit(completion: (result: SaveResult) -> Void) {
CoreStore.assert(
self.transactionQueue.isCurrentExecutionContext(),
"Attempted to commit a \(typeName(self)) outside its designated queue."
)
self.context.saveAsynchronouslyWithCompletion { (result) -> Void in
self.result = result
completion(result: result)
}
}
// MARK: Internal
internal override var bypassesQueueing: Bool {
return true
}
}