The UIFont
constructor is returning an optional (UIFont?
) which you must unwrap to use. Add !
if you're sure you have a valid font name:
Swift 4.2:
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "HelveticaNeue-Light", size: 19)!]
Swift 4:
navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Light", size: 19)!]
Swift 3:
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 19)!]
Note: If you are setting a font with a static name in your code, then force unwrapping is safe once you’ve verified you’re using a valid font name. If you are getting the font name from an external source (the user or a server), you will want to use optional binding such as if let font = UIFont(...
or guard let font = UIFont(...
to safely unwrap the font before use.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…