gpt4 book ai didi

ios - 如何检查 UILabel 是否为空并将内容附加到标签?

转载 作者:搜寻专家 更新时间:2023-10-31 08:18:52 25 4
gpt4 key购买 nike

ios 和 swift 的新手。想要一些最佳实践技巧。我想将内容附加到新行中的标签。我的尝试:

@IBOutlet weak var history: UILabel!
@IBAction func appendContent() {
if history.text != nil && !history.text!.isEmpty {
history.text = history.text! + "\r\n" + "some content"
}
else{
history.text = digit
}
}

然而,它似乎有效,

  1. 有没有更好的方法来检查文本不为 nil 且不为空?
  2. “\r\n”是否有“关键字”之类的东西?

最佳答案

您可以使用可选绑定(bind):if let 来检查某些内容是否为 nil

示例 1:

if let text = history.text where !text.isEmpty {
history.text! += "\ncontent"
} else {
history.text = digit
}

或者你可以使用 map 来检查可选项:

示例 2:

history.text = history.text.map { !$0.isEmpty ? $0 + "\ncontent" : digit } ?? digit

!$0.isEmpty 在大多数情况下甚至不需要,因此代码看起来会好一点:

history.text = history.text.map { $0 + "\ncontent" } ?? digit

编辑:map 的作用:

map 方法解决了使用函数转换数组元素的问题。

假设我们有一个 Int 数组表示一些钱,我们想创建一个新的字符串数组,其中包含钱值后跟“€”字符,即 [10,20,45,32 ] -> ["10€","20€","45€","32€"]

这样做的丑陋方法是创建一个新的空数组,迭代我们的原始数组,转换每个元素并将其添加到新数组

var stringsArray = [String]()

for money in moneyArray {
stringsArray += "\(money)€"
}

使用 map 只是:

let stringsArray = moneyArray.map { "\($0)€" }

它也可以用于可选项:

The existing map allows you to apply a function to the value inside an optional, if that optional is non-nil. For example, suppose you have an optional integer i and you want to double it. You could write i.map { $0 * 2 }. If i has a value, you get back an optional of that value doubled. On the other hand, if i is nil, no doubling takes place.

( source )

?? 做什么:

The nil coalescing operator (a ?? b) unwraps an optional a if it contains a value, or returns a default value b if a is nil. The expression a is always of an optional type. The expression b must match the type that is stored inside a.

nil 合并运算符是以下代码的简写:

a != nil ? a! : b

关于ios - 如何检查 UILabel 是否为空并将内容附加到标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29872884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com