我的班级
class ScoreModel {
var playerId: Int?
var holeScores: [HoleScore]?
}
其他班级
class HoleScore {
var holeScore: Int?
}
我有这些类一个是ScoreModel
类,可以有HoleScore
的对象数组
let scoreList = [ScoreModel]()
scoreList[0].holeScores![0].holeScore = 3
当我为holeScore
更新或更改scoreList[0].holeScores[0]
时,会更改所有scoreList[forAllIndexes].holeScores[0]
。我只想更改外部数组的给定索引的内部数组prams,但它会在更新时更改所有holeScore
值。
答案 0 :(得分:2)
这会附加同一个对象,因此一个中的更改会反映给其他人
var item = HoleScore()
for i in 0...5
{
item. holeScore = i
scoreList[0].holeScores.append(item)
}
//
这会附加不同的对象,因此一个中的更改不会反映给其他人
for i in 0...5
{
var item = HoleScore()
item. holeScore = i
scoreList[0].holeScores.append(item)
}
答案 1 :(得分:1)
刚刚解决了我将我的类转换为struct的问题。我只是不知道如何在嵌套的子数组中处理这些引用类型。所以我使用了struct
struct ScoreModel {
var playerId: Int?
var holeScores: [HoleScore]?
}
struct HoleScore {
var holeScore: Int?
}
现在为特定内部索引设置值不会影响其他人
let scoreList = [ScoreModel]()
scoreList[0].holeScores![0].holeScore = 3