ios - Swift 将 Any 转换为 String 并分配给 UIlabel( fatal error : Unexpectedly found nil while unwrapping an Optional value)

标签 ios swift

<分区>

我有这本词典

var detailItem: 字典?

我正在尝试获取 Any 并将其转换为字符串,然后像这样分配给 UILabel:

self.firstName.text = detail!["firstname"] as? String

Fatal error: Unexpectedly found nil while unwrapping an Optional value

我不明白,因为名字不是 nil,它是 James(不是“James”),只是 James,如果我打印它,我可以看到它:

print(detail!["firstname"])

我做错了什么?

如何将 Any 分配给 UiLabel 文本?

最佳答案

最安全的方法是从字典中解包可选字符串值。

if let firstName = detail?["firstname"] as? String {
    self.firstName?.text = firstName
}

这可确保您的标签文本仅在您的词典中有“名字”值时才会设置。

如果仍然崩溃,那么您的标签可能为零。如果您使用的是 socket ,则可能未设置。

关于ios - Swift 将 Any 转换为 String 并分配给 UIlabel( fatal error : Unexpectedly found nil while unwrapping an Optional value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47229779/

相关文章:

ios - 有没有更好的方法来处理来自 CLLocationManager 的大量标题数据以呈现在 UI 上?

ios - 加快像素迭代

ios - 如何在不使 Swift 中的单元格透明的情况下使 UICollection View 的背景透明

swift - 为什么第三次点击按钮时发送消息崩溃?

ios - 在 UITableviewcell 中加载计时器

ios - PDFAnnotationSubtype 等于 .widget 的 PDFAnnotation 在将其添加到 PDFPage 后不会刷新其外观

ios - iOS 8.1 升级后无法在 iPhone 5 上运行 App

ios - CABasicAnimation 圈 CAShapeLayer 在 map 上移动而不是缩放

ios - 需要算术或指针类型的 uitextfield。

ios - 在 UITabBarController 中,如何找出选项卡栏中的哪个 UIViewController 在 Swift 2.x 中显示当前的 UIViewController