From e4b6c064013c7665757503bec6ea0ee434676cb0 Mon Sep 17 00:00:00 2001 From: John Estropia Date: Thu, 21 Jul 2016 11:51:49 +0900 Subject: [PATCH] fixed internal errors getting thrown as .Unknown instead of .InternalError (fixes #84) --- CoreStoreTests/ErrorTests.swift | 2 +- Sources/ObjectiveC/CSError.swift | 25 +++++++++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) 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 } } }