Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Commit 44c6af2

Browse files
committed
Add comment about errorDescription should not be nil
1 parent 39a67df commit 44c6af2

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

WordPressKit/WordPressAPIError.swift

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,27 @@ public enum WordPressAPIError<EndpointError>: Error where EndpointError: Localiz
2424
extension WordPressAPIError: LocalizedError {
2525

2626
public var errorDescription: String? {
27+
// Considering `WordPressAPIError` is the error that's surfaced from this library to the apps, its instanes
28+
// may be displayed on UI directly. To prevent Swift's default error message (i.e. "This operation can't be
29+
// completed. <SwiftTypeName> (code=...)") from being displayed, we need to make sure this implementation
30+
// always returns a non-nil value.
31+
let localizedErrorMessage: String
2732
switch self {
2833
case .requestEncodingFailure, .unparsableResponse:
2934
// These are usually programming errors.
30-
return Self.unknownErrorMessage
35+
localizedErrorMessage = Self.unknownErrorMessage
3136
case let .endpointError(error):
32-
return error.errorDescription ?? Self.unknownErrorMessage
37+
localizedErrorMessage = error.errorDescription ?? Self.unknownErrorMessage
3338
case let .connection(error):
34-
return error.localizedDescription
39+
localizedErrorMessage = error.localizedDescription
3540
case let .unknown(underlyingError):
3641
if let msg = (underlyingError as? LocalizedError)?.errorDescription {
37-
return msg
42+
localizedErrorMessage = msg
43+
} else {
44+
localizedErrorMessage = Self.unknownErrorMessage
3845
}
39-
return Self.unknownErrorMessage
4046
}
47+
return localizedErrorMessage
4148
}
4249

4350
}

0 commit comments

Comments
 (0)