Swift将值从字典赋值给字符串对象

时间:2016-06-22 09:19:40

标签: swift2 nsstring nsdictionary

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

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

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

那么我如何摆脱添加检查,如果该密钥存在于字典中,则读取该值并将其分配给字符串对象。

任何帮助都会非常明显。

由于

2 个答案:

答案 0 :(得分:1)

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

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

强行展开总是危险的。如果let和guard let语句使用,以防止在解包可选项时传播错误。

答案 1 :(得分:0)

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

对于SwiftyJSON,您所要做的就是

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

它会将key的值转换为string本身。 如果字典lastname什么都不包含,SwiftyJSON将使用“”,这是非常好的。

要创建数组,您可以使用以下内容:

array = dictionary["contactObjects"].arrayValue

要了解详情,请使用Google Swifty JSON并打开github页面。

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