以下是我最终得到的“厄运金字塔”,例如:
( users: [ JsONValue ]? ) inif let JsonValue: JsONValue = users?[ 0 ]{ if let Json: Dictionary< String,JsONValue > = JsonValue.object { if let userIDValue: JsONValue = Json[ "ID" ] { let userID: String = String( Int( userIDValue.double! ) ) println( userID ) } }}
后记
Airspeed VeLocity的答案是正确的答案,但是你需要使用Swift 1.2来使用逗号分隔的多个let,因为他建议,目前只在测试版的XCode 6.3中运行.
解决方法 正如评论者所说,Swift 1.2现在具有多重语法:if let JsonValue = users?.first,Json = JsonValue.object,userIDValue = Json[ "ID" ],doubleID = userIDValue.double,userID = doubleID.map({ String(Int(doubleID))}){ println( userID )}
也就是说,在这种情况下,看起来您可以通过1.1中的可选链接来完成所有 *** 作,具体取决于您的对象:
if let userID = users?.first?.object?["ID"]?.double.map({String(Int())}) { println(userID)}
注意,首先使用(如果这是一个数组)而不是[0]要好得多,以便考虑数组为空的可能性.和地图上的双而不是! (如果价值不是双倍的话会爆炸).
总结以上是内存溢出为你收集整理的xcode – 有没有更好的方法来应对Swift的嵌套“if let”“厄运金字塔?”全部内容,希望文章能够帮你解决xcode – 有没有更好的方法来应对Swift的嵌套“if let”“厄运金字塔?”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)