swift - 如何检查字段类型是否为 Any?是零或 NSNull

标签 swift swift3

我实际上是在尝试在 Xcode8.1 上使用 Swift3 解析 Json 对象。 这是我的代码:

if let objData = objJson["DATA"] as! NSDictionary? {
    var msg: String = ""
    if let tmp = objData.object(forKey: "Message") { 
        msg = tmp as! String
    } else {
        print("NIIILLLLL")
    }
}

我收到此错误消息:Could not cast value of type 'NSNull' (0x4587b68) to 'NSString' (0x366d5f4) at this line msg = tmp as!字符串.

我不明白为什么会出现此错误,因为 tmp 的类型是 Any 并且它应该显示打印而不是将 tmp 转换为!字符串

谢谢你的帮助,

最佳答案

您可以在 let 中添加转换。

if let tmp = objData.object(forKey: "Message") as? String { 
    msg = tmp
}

关于swift - 如何检查字段类型是否为 Any?是零或 NSNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40687328/

相关文章:

swift - 并发队列上的 `.barrier` 是否应该立即变为事件状态?

arrays - 验证一个 url 是它要去的地方 Swift

swift - 非 -'@objc' 方法不满足 '@objc' 协议(protocol)的可选要求

swift - 更改 NSButton 的字体大小不会改变任何内容

ios - 将 Travis CI 与 Swift 3.0 和 CocoaPods 结合使用

ios - swift 3 错误 [_SwiftValue nsli_superitem]

ios - 使用Vision&AVFoundation Framework从实时摄像头(不是从静态图像)进行实时面部检测

ios - CSSearchableAttributeset 支持PhoneCall、Navigation 不起作用

ios - 有效地确定用户是否喜欢 Firebase 中的帖子

Swift - 如何在菜单栏应用程序中跨窗口共享类(作为单例)?