Странное смещение при присвоении значения в простом цикле

#ios #swift

#iOS #swift

Вопрос:

 class func generatePuzzle(manager: MDLTileManager, withGivens givens:Array<Int>, atPositions positions:Array<TileIndexPath>){
    NSLog("(givens.count), (positions.count)");
    //Doesn't work
    for index in 0...positions.count-1{
        //Original code before anomaly:
        //var tileindex = positions[index].toIndex();
        //manager.tiles[tileindex].isGiven == true;

        //New code added to test anomaly:
        manager.tiles[index].currentValue == 8;
    }
    //Works
    for index in 0...positions.count-1{
        manager.tiles[index].currentValue = 8
    }

    for index in 0...manager.tiles.count-1{
        manager.tiles[index].currentValue = 8;
        manager.tiles[index].isGiven = true;
    }
}
  

Первый цикл for в этом фрагменте вчера работал нормально. Сегодня он не обновляет модель, как предполагалось. Я не мог разобраться в проблеме, поэтому я просто пытался перебрать ее с помощью журналов и фрагментов кода.

Как вы можете видеть, все циклы for идентичны, но первый цикл for не обновляет модель, как это делают два других. Есть идеи, как это может быть?

MDLTileManager это просто класс-оболочка вокруг массива, который содержит мои данные для моих плиток судоку. Это соответствующий код для модели плитки

 struct TileModel {
    var ID = 0;
    var currentValue = 0;
    var solutionValue = 0;
    var possibleValues = Array<Int>();
    var isGiven = false;
    var isHighlighted = false;
    func isCorrect() -> Bool{
        return (solutionValue != 0) amp;amp; (currentValue == solutionValue);
    }

    init(ID: Int, currentValue current: Int, solutionValue solution: Int, isGiven given:Bool, isHighlighted highlighted:Bool){
        self.ID = ID;
        self.currentValue = current;
        self.solutionValue = solution;
        self.isGiven = given;
        self.isHighlighted = highlighted;
    }   
}
  

Комментарии:

1. предназначено ли == в первом цикле? это проверка на равенство, а не присвоение

2. … Нет, это не так. О боже … спасибо. Я понятия не имею, как это туда попало, но это было бы проблемой. Я смотрел на это в течение последнего часа. Я думаю, иногда вам просто нужен новый взгляд, чтобы увидеть очевидное.