Implicitly Unwrapped Optional

Implicitly unwrapped optionals should be avoided when possible

  • Identifier: implicitly_unwrapped_optional
  • Enabled by default: No
  • Supports autocorrection: No
  • Kind: idiomatic
  • Analyzer rule: No
  • Minimum Swift compiler version: 5.0.0
  • Default configuration:
    KeyValue
    severity warning
    mode all_except_iboutlets

Non Triggering Examples

@IBOutlet private var label: UILabel!
@IBOutlet var label: UILabel!
@IBOutlet var label: [UILabel!]
if !boolean {}
let int: Int? = 42
let int: Int? = nil

Triggering Examples

let label: ↓UILabel!
let IBOutlet: ↓UILabel!
let labels: [↓UILabel!]
var ints: [↓Int!] = [42, nil, 42]
let label: ↓IBOutlet!
let int: ↓Int! = 42
let int: ↓Int! = nil
var int: ↓Int! = 42
let collection: AnyCollection<↓Int!>
func foo(int: ↓Int!) {}
class MyClass {
    weak var bar: ↓SomeObject!
}