gpt4 book ai didi

ios - 当我从字典接收 时如何正确解包和使用 nil - swift 3

转载 作者:行者123 更新时间:2023-11-29 11:52:39 28 4
gpt4 key购买 nike

我有一个结构:

    struct SomeTopic {

var name: String?
var parent: String?

mutating func setName(name: String?) {
self.name = name
}

mutating func setParent(parent: String?) {
self.parent = parent
}
}

在其他类(class)中,我正在尝试访问字典 topicsList :

    class Blabla {

var topics: Array<SomeTopic>!

func topicsDidFinishLoading(topicsList: Array<Dictionary<String, Any>>) {

if (self.topics != nil) {
self.topics.removeAll()
}

for topic in topicsList {

print(" Topic: ", topic)
var newTopic = SomeTopic()

newTopic.setName(name: topic["name"] as? String)
newTopic.setParent(parent: topic["parent"] as? String)

print("New topic created: ", newTopic)
self.topics.append(newTopic)
}
}

在函数“self.topics.append(newTopic)”的最后一行,我在运行时遇到错误: fatal error :在展开可选值时意外发现 nil。

打印语句:

主题:[“名称”:新闻,“父”:<null> ]

创建的新主题:SomeTopic(name: Optional("News"), parent: nil)

我试过使用:

    if let name = topic["name"] {

newTopic.setName(topic["name"])
}

和 nil 测试的所有变体,但当 topic["name"] 的内容为 <null> 时它会进入 if-let 循环.

最佳答案

似乎问题只在声明中

    var topics: Array<SomeTopic>! 

代替

    var topics = Array<SomeTopic>()

这导致了崩溃,因为 self.topics 为零。

关于ios - 当我从字典接收 <null> 时如何正确解包和使用 nil - swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40469420/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com