我已经完成了 this SO 问题,并且知道这是由于同时读取和写入而发生的。但在我的情况下,我无法弄清楚我在哪里同时读取和写入我的数组。

我正在做的是在插入数组之前从数组中删除子范围。例如:

var createGameOptions = [GOCreateGameDetailsModel]()
for attribute in model.gameAttributes! {
     let model = GOCreateGameDetailsModel.init(title: attribute.attribute_name!, image: nil, value: "", imageUrl: attribute.attribute_icon)
     createGameOptions.append(model)
}
if (createGameModel?.createGameOptions?.count)! > 3 {
    createGameModel?.createGameOptions?.removeSubrange(2...((createGameModel?.createGameOptions?.count)! - 2))
}
createGameModel?.createGameOptions?.insert(contentsOf: createGameOptions, at: 2)

任何帮助将不胜感激。

最佳答案

你应该尝试更新这一行

createGameModel?.createGameOptions?.removeSubrange(2...((createGameModel?.createGameOptions?.count)! - 2))


let count = (createGameModel?.createGameOptions?.count)!
createGameModel?.createGameOptions?.removeSubrange(2...(count - 2))

尝试并分享结果

关于ios - 同时访问0x6040000155d8,但修改需要独占访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51673624/

10-11 19:28