我很感興趣,爲什麼我得到這個錯誤:綁定必須有可選類型斯威夫特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
if let types = typesField.itemListUI { - >這個 – Latenec
每當你使用'if let'右邊*必須*是**可選**(可能有或沒有值)。有關更多信息,請參見[這裏](https://stackoverflow.com/questions/24018327/what-does-an-exclamation-mark-mean-in-the-swift-language/38830543#38830543)。 **非可選項**可能永遠不會'無'所以*肯定*它有一個值;在你的情況下,值*是*字符串,而不是'字符串?'。你可以把這行寫成'types = typesField.itemListUI',而不用'if let'。 – Honey