私は、なぜ私はこのエラーを取得しています興味持っている必要があります。ここではバインディングはオプションの種類スウィフト3エラー
Initializer for conditional binding must have Optional type, not [String]
が私のコードです:
class MainVC: UIViewController {
@IBOutlet weak var typesField: IQDropDownTextField!
override func viewDidLoad() {
super.viewDidLoad()
let elements: Array<String?> = ["Electronics", "Cars", "Toys"]
typesField.isOptionalDropDown = false
typesField.itemList = (elements as? [String])!
}
@IBAction func savePressed(_ sender: UIButton) {
var item: Item!
if let types = typesField.itemListUI {
item.type = types
}
}
}
実際にエラーを引き起こしているのは、どのラインですか? – rmaddy
の場合let type = typesField.itemListUI { - > this one – Latenec
は 'if let'を右側に使用するたびに**オプションの**(値を持つ場合もありません)でなければなりません。詳細は[こちら](https://stackoverflow.com/questions/24018327/what-does-an-exclamation-mark-mean-in-the-swift-language/38830543#38830543)をご覧ください。 **非選択肢**は 'nil'ではないかもしれませんので*確かに*値を持っています。あなたの場合、値*は 'string'であり' string 'ではありません。あなたは 'types = typesField.itemListUI'としてその行を' if let'なしで書くことができます。 – Honey