gpt4 book ai didi

swift - 无法在 Label.text 中转换 NSString

转载 作者:行者123 更新时间:2023-11-30 10:02:32 26 4
gpt4 key购买 nike

我一直在尝试在标签中显示从另一个 View Controller 中的单元格检索到的值

这是详细 View Controller

var gg = NSDictionary()
var siteName = NSString()

override func viewDidLoad() {
super.viewDidLoad()

siteName = gg["SiteName"]! as! NSString
print(siteName)

self.siteNameDetail.text = siteName as String
}

打印站点名称完美给出了值但是当转换为 siteNameDetail.text 时会出现此错误

fatal error: unexpectedly found nil while unwrapping an Optional value

此 gg 是从母版页检索的

if (segue.identifier == "siteSegue"){
let destview = segue.destinationViewController as! SiteViewController
destview.gg = sender as! NSDictionary
}

最佳答案

该错误与标题中提到的类型转换无关。

如果字典中不存在键 SiteName,则强制解包会导致应用程序崩溃。

您必须使用可选绑定(bind)或 nil 合并运算符来检查 key 。

使用原生 Swift 类型(StringDictionary)。它使事情变得更加容易。

var gg = [String:AnyObject]()
var siteName = ""

override func viewDidLoad() {
super.viewDidLoad()
siteName = gg["SiteName"] as? String ?? ""
print(siteName)

self.siteNameDetail.text = siteName
}

PS:摆脱 ObjC 遗留的问题,例如 if 条件周围的分号和括号。

关于swift - 无法在 Label.text 中转换 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37643057/

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