使用Swift 5检查字符串是否不为空

cpjpxq1n  于 2022-12-10  发布在  Swift
关注(0)|答案(1)|浏览(138)

所以我想利用一些性能最好的东西,但是也要检查字符串上的nilnot empty

示例:如果字符串不为nil,但也不为空,则显示showLinkButton

所以我可以使用以下代码:

if let website = item.website, !item.website.isEmpty {
    showLinkButton
}

这里有一个@ViewBuilder,如下所示:

@ViewBuilder private var showLinkButton: some View {
    Button(action: {
        self.isBrowsingWebsite = true
    }, label: {
        Image(systemName: "link")
            .resizable()
            .scaledToFit()
            .frame(height: 14)
            .fontWeight(.bold)
            .padding(5)
    })
    .foregroundColor(.secondary)
    .background(
        RoundedRectangle(cornerRadius: 5, style: .continuous)
            .fill(Color(.systemGray6))
    )
    .sheet(isPresented: $isBrowsingWebsite) {
        SafariViewWrapper(url: URL(string: item.website)!)
    }
}

问题

问题是我实际上没有对let website做任何事情,所以我得到了以下错误:
一个月五个月一个月和一个月六个月。

问题

  • 如果我使用if _ = item.website, !item.website.isEmpty,这会影响性能吗?有更好的方法吗?
  • 由于我将有多个if语句,在同一个视图中调用if _ = ... 5次以上会有负面影响吗?
wztqucjr

wztqucjr1#

使用 * 可选链接 * 调用isEmpty并与false进行显式比较:

if item.website?.isEmpty == false {
    print("not nil and not empty")
}

注意事项:
如果你想检查一个值是否为nil,只需将其与nil进行比较。除非你想使用解包后的值,否则不要使用if let

相关问题