在 swift2 的分割故障 11

标签: Xcode ios Swift
发布时间: 2017/3/6 23:23:01
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我也不知道为什么我会出现此错误。

问题代码是在这里

for i in 0..<itemDataJson?.count {
        imageUrls.append(appDelegate.itemDataJson![i]["image_url"].string!)
}

当我 print(itemDataJson?.count) Optional(1),它输出。 我到底做错了?

谢谢。

解决方法 1:

它印刷 Optional(1),因为变量 itemDataJson 是可以为 null,所以计数会因此必须是可以为 null,因为我们不知道是否 itemDataJson 其实有一个值。

我看到您的代码中的主要问题是你是力展开变量。部队展开变量是一种代码味道 (通常,虽然我自己做从时间到时间,但你必须要小心)。

当你强迫打开一个变量,你需要问自己一个问题,"我想应用程序如果此变量为零的崩溃在这里吗?"。如果答案是肯定的然后再用武力打开是可以接受的否则,你应该创建一个非可以为 null 的变量或如果这是不可能的你应该使用中的守护语句 swift

这可以使用像这样︰

guard let itemDataJson = itemDataJson else {
    // itemDataJson was null do something
    return
}

您可以使用 if let 建设,但要小心金字塔的厄运,如果你不使用 if let 构建正确。看到这里使用它正确,或使用警卫队声明。

我建议如果你这样做并不已经签出文档上

官方微信
官方QQ群
31647020