Unknowndefault -
: If your code is recompiled and there are known enum cases that you haven't explicitly handled, the compiler will issue a warning . A standard default would stay silent. Usage and Rules
: Like a regular default , it matches any value not explicitly covered by other cases. unknowndefault
This report focuses on , a feature introduced in Swift 5 to handle "non-frozen" enumerations—enums where new cases might be added in the future without breaking existing code. Core Functionality : If your code is recompiled and there
: It cannot be merged with other cases (e.g., you cannot write case .first, @unknown default: ). Comparison: default vs @unknown default default @unknown default Catch-all Future-proofing Warning if known cases missing Yes Behavior on new cases Triggers warning to update code Common Issues What's the deal with "@unknown default" - Swift Forums This report focuses on , a feature introduced
: It is primarily used with enums from system frameworks (like CLLocationManager.authorizationStatus() ) or Objective-C enums that aren't marked as "closed". Placement : It must be the last case in a switch statement.
In Swift, every switch statement must be exhaustive. While a standard default case acts as a "catch-all" and satisfies this requirement, it can hide errors if you accidentally forget to handle a new, known case. solves this by: