绑定必须具有可选类型Swift 3错误

时间:2017-07-15 16:13:56

标签: ios swift xcode

我很感兴趣,为什么我收到此错误:

  

条件绑定的初始化程序必须具有可选类型,而不是[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
        }
    }
}

1 个答案:

答案 0 :(得分:0)

  

条件绑定的初始化程序必须具有可选类型,而不是[String]

表示表达式的右侧(typesField.itemListUI)不是可选的,不需要可选的绑定

所以改为

if let types = typesField.itemListUI {
   item.type = types
}

写一下

item.type = typesField.itemListUI

if let,没有额外的局部变量。