Declaring a variable as optional clearly signals that it may not hold a valid value and could be nil. Force-unwrapping bypasses that safety and will cause a runtime crash if the value is actually nil. Even if you check for nil first, relying on force-unwrapping is still discouraged because it undermines the intent of optionals. A safer and more maintainable approach is to use optional binding or optional chaining to handle values gracefully.
Non-Compliant Code Examples
vargreeting:String?// ...println(\(greeting!))// Noncompliant; could cause a runtime errorifgreeting!=nil{println(\(greeting!))// Noncompliant; better but still not great}