【问题标题】:Swift check if array of anyObject have value快速检查anyObject的数组是否有值
【发布时间】:2016-11-30 17:17:26
【问题描述】:

我有这个 anyObject 数组,用于读取我下载的 JSON 数据。

datiArticolo!["anagrafica"]![linguaApp!]!!["img"]!!["path"]

问题是我并不总是有 che ["img"] 或/和 ["path"] 值。 我如何检查是否有,如果没有,请执行其他操作?

【问题讨论】:

  • 啊啊啊!所有这些!。为什么?每一个都代表“crash here”。
  • 迅速告诉我把它们放好
  • 不,Xcode 告诉你把它们放进去。Xcode 是邪恶的,它对你撒谎。它希望您的应用程序崩溃,因此您将花更多时间在它上面。请花时间学习 Swift 中的选项。
  • 这个数据结构完全被破坏了(我知道你是怎么做到的,但我们必须告诉你出路)。如果你在同一个表达式中找到了两个独立的!!,那么是时候回去重建你的数据结构了。不要将数据存储在复杂的嵌套字典中。将其转换为结构的结构。说真的,!! 是疯了。多层次的字典是疯狂的。带有固定字符串的字典有点疯狂(它们不应该经常使用)。是时候重新设计数据了。

标签: swift anyobject


【解决方案1】:

您通常希望检查所有强制解包以防止崩溃,因此您会在链条上继续这种模式。查看更多关于optional chaining的信息。

if let img = datiArticolo!["anagrafica"]![linguaApp!]!!["img"], path = img["path"] {
 // do something with `path`
} 

【讨论】:

  • 我同意,这就是为什么我说继续这种模式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多