Ios 绑定必须具有可选类型Swift 3错误
我很感兴趣为什么会出现这个错误: 条件绑定的初始值设定项必须具有可选类型,而不是[String] 这是我的密码:Ios 绑定必须具有可选类型Swift 3错误,ios,swift,xcode,Ios,Swift,Xcode,我很感兴趣为什么会出现这个错误: 条件绑定的初始值设定项必须具有可选类型,而不是[String] 这是我的密码: class MainVC: UIViewController { @IBOutlet weak var typesField: IQDropDownTextField! override func viewDidLoad() { super.viewDidLoad() let elements: Array<String?&g
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
}
}
}
class MainVC:UIViewController{
@IBOutlet弱var类型字段:IQDropDownTextField!
重写func viewDidLoad(){
super.viewDidLoad()
let元素:数组=[“电子”、“汽车”、“玩具”]
typesField.isOptionalDropDown=false
typesField.itemList=(元素为?[String])!
}
@iAction func savePressed(uSender:ui按钮){
var项目:项目!
如果let types=typesField.itemListUI{
item.type=类型
}
}
}
条件绑定的初始值设定项必须具有可选类型,而不是[String]
表示表达式的右侧(typesField.itemListUI
)不是可选的,不需要可选绑定
所以相反
if let types = typesField.itemListUI {
item.type = types
}
只要写
item.type = typesField.itemListUI
没有
如果let
,没有额外的局部变量。哪一行实际导致了错误?如果let types=typesField.itemListUI{->当您使用如果let
时,右侧必须是可选的(可能有值,也可能没有值)。有关更多信息,请参见。非可选项可能永远不会是nil
,因此它肯定有一个值;在您的情况下,该值是string
,而不是string?
。您可以将该行写为types=typesField.itemListUI
,如果let,则不使用。您的意思是let types=typesField.itemListUI
,因为t首先,我必须创建变量types
您可以跳过该行,直接执行:item.type=typesField.itemListUI
我收到此错误-无法将类型“[String]”的值分配给类型“String?”item。type
声明为(single)String
不是String
([String]
)的数组。您必须在设计中解决此问题。