gpt4 book ai didi

ios - 如何在不解包可选值的情况下使用字符串变量

转载 作者:搜寻专家 更新时间:2023-11-01 05:53:47 25 4
gpt4 key购买 nike

我对 Swift 2.0 的 unwrap 基础非常困惑。我有下面的代码来显示从字典到标签的姓氏字符串值。

let lastName:String? = self.userDict.objectForKey("last_name")
self.lblLastName.text = "Last Name: " + lastName!

但有时此代码在将值分配给 self.userDict 之前运行,当时上面的代码获取 self.userDict.objectForKey("last_name") nil 并抛出一个错误。

对于解决方案,我修改了我的代码,如下所示,并保留该值解包,但编译器不认为它有效

let lastName:String? = self.userDict.objectForKey("last_name")
self.lblLastName.text = "Last Name: " + lastName? //--ERROR: Value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'?

请建议我满足要求的有效方法。

最佳答案

您需要提供一种方法来处理字典没有键 "last_name" 值并返回 nil 的情况。最简单的方法是使用 nil coalescing operator ??:

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.

你可以这样做:

let lastName: String = self.userDict.objectForKey("last_name") ?? "N/A"
self.lblLastName.text = "Last Name: " + lastName

关于ios - 如何在不解包可选值的情况下使用字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33430289/

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