首页 > 解决方案 > 可选类型“UITextField?”的值 必须解包以引用已包装基本类型“UITextField”的成员“文本”

问题描述

我正在使用文本字段来搜索数组中的值。但我收到这样的错误。我们应该如何转换数据类型?我正在使用 Swift 5。

可选类型“UITextField?”的值 必须解包以引用已包装基本类型“UITextField”的成员“文本”

    for i in 0..<allUser.count {
        if allUser[i].name.contains(textArea.text) { // here is the error
            print(allUser[i].name)
        }
    }

标签: iosswift

解决方案


您收到的错误是因为 textArea 是可选的,而 textArea.text 返回一个可选字符串,而“包含”函数需要一个非可选字符串。

首先,展开文本,然后遍历过滤的匹配并打印它们。

if let text = textArea?.text {
   for user in allUser.filter({ $0.name.contains(text) }) {
      print(user.name)
   }
}

推荐阅读