条件绑定必须具有可选类型,而不是'String'

时间:2019-03-24 19:10:16

标签: ios swift

我了解到UILabel的text属性是可选的,我尝试添加else,但是不知道还要添加什么。

productData.product.productName是我从数据库中获取产品的名称

            if var pName = productData.product.productName { //error
              self.productName.text = pName
            }

@IBOutlet weak var pName: UILabel!

用于条件绑定的Initializer必须具有Optional类型,而不是'String'是我得到的错误,它在起作用,我认为我不确定它哪里出错了

2 个答案:

答案 0 :(得分:0)

它指出,无需使用if条件,因为'productName'不是可选的。

您可以将值直接添加到标签中。

self.productName.text = productData.product.productName //Product name is not optional

当您尝试获取可选值时,将使用可选链接。 例如,如果要获取标签文本,则需要if条件。

if var text = self.productName.text { //Text in label is optional
   print(text)
}

答案 1 :(得分:0)

似乎编译器在抱怨productData.product.productName不是可选的。 if var name = ____构造仅适用于Optional。

如果要测试非空字符串,则可能需要检查countisEmpty