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!
}