Je mets à jour un projet vers Swift 3 et suis tombé sur l'avertissement suivant que je n'arrive pas à résoudre.
fileprivate var filteredTitlesList: [String] = []
if let filteredTitle: String = filteredTitlesList[indexPath.row] as String { // 'Non-optional expression of type 'String' used in a check for optionals'
// Do something
}
La réponse à une question similaire ne m’a pas aidé: Expression non-optionnelle du type 'AnyObject' utilisée dans une vérification d’options
Merci beaucoup!
Vous essayez de décompresser une valeur déjà décompressée et vous obtenez donc une erreur car elle n'a pas besoin d'être décompressée à nouveau. Modifiez votre déclaration if pour qu'elle ressemble à ce qui suit et vous devriez être en or:
if filteredTitleList.count > indexPath.row {
let filteredTitle = filterdTitleList[indexPath.row]
}
Malheureusement, il n'y a aucun moyen de lier la variable dans l'instruction if. J'espère qu'ils en ajouteront une dans le futur.
Une autre possibilité de cet avertissement est lorsque vous essayez de mettre une instruction, par exemple: let keyboardFrame: CGRect = keyboardFrameValue.cgRectValue
dans une instruction conditionnelle telle que if
ou guard