diff --git a/CoreStoreTests/ErrorTests.swift b/CoreStoreTests/ErrorTests.swift index 7276015..006d430 100644 --- a/CoreStoreTests/ErrorTests.swift +++ b/CoreStoreTests/ErrorTests.swift @@ -147,7 +147,7 @@ final class ErrorTests: XCTestCase { "key3": NSDate() ] ) - let error = CoreStoreError.InternalError(NSError: internalError) + let error = CoreStoreError(internalError) XCTAssertEqual((error as NSError).domain, CoreStoreErrorDomain) XCTAssertEqual((error as NSError).code, CoreStoreErrorCode.InternalError.rawValue) diff --git a/Sources/ObjectiveC/CSError.swift b/Sources/ObjectiveC/CSError.swift index 45f7587..4ae96f5 100644 --- a/Sources/ObjectiveC/CSError.swift +++ b/Sources/ObjectiveC/CSError.swift @@ -248,9 +248,17 @@ internal extension ErrorType { switch self { - case let error as CoreStoreError: return error - case let error as CSError: return error.bridgeToSwift - default: return .Unknown + case let error as CoreStoreError: + return error + + case let error as CSError: + return error.bridgeToSwift + + case let error as NSError where self.dynamicType is NSError.Type: + return .InternalError(NSError: error) + + default: + return .Unknown } } @@ -258,9 +266,14 @@ internal extension ErrorType { switch self { - case let error as CoreStoreError: return error.bridgeToObjectiveC - case let error as CSError: return error - default: return self as NSError + case let error as CoreStoreError: + return error.bridgeToObjectiveC + + case let error as CSError: + return error + + default: + return self as NSError } } }