Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays SWIFT仍在努力为类中的嵌套数组赋值_Arrays_Swift_Class_Nested_Initialization - Fatal编程技术网

Arrays SWIFT仍在努力为类中的嵌套数组赋值

Arrays SWIFT仍在努力为类中的嵌套数组赋值,arrays,swift,class,nested,initialization,Arrays,Swift,Class,Nested,Initialization,这是我的最后一个问题,大卫给了我一个类似问题的好提示。 经过多次迭代,我现在想出了一种不同的方法,但是,它仍然失败,我不知道为什么(以及基本上发生了什么) 我有类定义 struct高分:可编码{ 变量分数:Int var highscoreRecord:[highscoreRecord] } 结构HighscoreRecord:可编码{ 变量秩:Int 变量日期:字符串? 持续时间:浮动? var分数:Int? var:Int? } 在视图控制器中,我声明了HighScores类型的变量,该变

这是我的最后一个问题,大卫给了我一个类似问题的好提示。 经过多次迭代,我现在想出了一种不同的方法,但是,它仍然失败,我不知道为什么(以及基本上发生了什么)

我有类定义

struct高分:可编码{
变量分数:Int
var highscoreRecord:[highscoreRecord]
}
结构HighscoreRecord:可编码{
变量秩:Int
变量日期:字符串?
持续时间:浮动?
var分数:Int?
var:Int?
}
在视图控制器中,我声明了HighScores类型的变量,该变量可以从JSON文件读取数据,也可以在设置第一个HighScores时初始化

类GameplayViewController:UIViewController{
var jsonResult:高分?
...
如果firstHighscore==1{
jsonResult?.Scores=1
jsonResult?.highscoreRecord.append(highscoreRecord(排名:1,日期:formatter.string(起始日期:dateStart),avDuration:Float(lblSpeed.text??“0.0”),分数:Int(lblRatio.text??“0”),尝试:点击+未点击)
...
打印(jsonResult)
但是,如果我监视jsonResult变量,在分配分数和highscoreRecord值后,它仍然显示nil

发生了什么,为什么我可以分配一个没有错误的值,而不实际分配它? 首先也是最重要的是,我如何将我的值输入到jsonResult中


干杯

因此,如果您将代码更改为与此类似的内容,请根据上面的注释创建结构实例并添加值

var jsonResult:高分?
如果firstHighscore==1{
jsonResult=HighScores(分数:1,highscoreRecord:[highscoreRecord(排名:1,日期:“你的约会”,平均持续时间:0.0,分数:0,尝试次数:0)])
} 

创建后,您可以根据需要使用append方法向数组中添加更多的highscorerecords。

自上一个问题以来,您仍然没有给
jsonResult
一个值,因此它仍然为零。您需要执行
jsonResult=…
。这里发生的情况是,在
jsonResult?中使用
时,分数=1是零首先,你是说如果jsonResult不是nil,那么将1赋值给
分数
,否则什么都不做,这样编译器或运行时就没有什么可抱怨的了,因为代码是正确的。因此,你需要调查在代码中需要实例化
jsonResult
属性的位置在编写上述代码之前,我尝试了numerous jsonResult?的变体。highscoreRecord=[highscoreRecord]()在编写上述代码之前,我尝试了许多jsonResult?的变体。highscoreRecord=[highscoreRecord](),没有一个成功。所以我很高兴上面的代码没有抛出错误。那么,考虑到jsonResult背后的类结构,我如何将初始值传递给它呢?现在我明白了!非常感谢!