私はプロジェクトをSwift 3にアップデートしていて、解決できないような警告が表示されました。Swift 3警告:オプションのチェックで使用される 'String'タイプの非オプション式
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
}
同様の質問への答えはここに私を助けていない:Non-optional expression of type 'AnyObject' used in a check for optionals
おかげでたくさん!
ようfilteredTitlesList'は 'STRING'要素の配列で、'ので、あなたが作る必要はありませんこの配列内の要素をそれ自身の要素型に変換します。したがって、ここではオプションのバインディングは必要ありません。 'filteredTitlesList'が' Any'要素の配列であれば、オプションのバインディング句の中で変換を試みることができました( '? ')。 – dfri
あなたは 'String'の配列を持っていて、それから' String'という項目を取得し、それを 'String'にキャストします。そしてそれが「無」であることを期待してください。私は正しいですか? – user28434
あなたは文字列の配列を持っています - その宣言によると - 決してゼロになることはありません。したがって、 'if'条件全体は意味をなさない。 – Codo