【问题标题】:Swift assign value from dictionary to string objectSwift 将值从字典赋值给字符串对象
【发布时间】:2016-10-24 03:21:08
【问题描述】:

我正在使用 AnyObject 类型的 swift dictionary 并读取特定键的值并将其分配给这样的字符串对象,

contactObject.lastName = requestDict.objectForKey("lastName") as! String

我的问题是,当我的应用程序崩溃时字典中不存在键“lastName”时,我添加了检查以避免崩溃,但我想知道如何从字典中获取可选值对于键“lastName”,我知道 swift 获取可选值的功能。

那么我怎样才能摆脱添加检查该键是否存在到字典中然后读取值并将其分配给字符串对象。

任何帮助都会非常感激。

谢谢

【问题讨论】:

    标签: swift2 nsstring nsdictionary


    【解决方案1】:

    你应该使用 SwiftyJSON 库(外部框架),它非常干净,你不需要像在 ios 内置系统中那样进行类型检查。

    对于 SwiftyJSON,你所要做的就是

    contactObject.lastName = requestDict["lastName"].stringValue
    

    它将键的值转换为字符串本身。 如果字典 lastname 不包含任何内容,SwiftyJSON 会使用 "",非常好。

    要创建一个数组,你可以使用类似的东西:

    array = dictionary["contactObjects"].arrayValue

    要了解更多信息,只需 google Swifty JSON 并打开 github 页面。

    如果你可以使用 CocoaPods,你所要做的就是创建一个 podfile 并添加 pod。

    【讨论】:

      【解决方案2】:

      我不太确定你在问什么。如果您尝试从 [String: AnyObject] 的字典中获取 lastName 并将其转换为字符串,我建议您这样做。只有存在时才会分配它。

      if let lastName = requestDict["lastName"] as? String { contactObject.lastName = lastName }

      强制展开总是很危险的。使用 if let 和 guard let 语句来防止在展开可选项时错误传播。

      【讨论】:

        猜你喜欢
        • 2023-03-13
        • 1970-01-01
        • 2012-05-24
        • 2019-01-13
        • 1970-01-01
        • 2016-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多