#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. … Нет, это не так. О боже … спасибо. Я понятия не имею, как это туда попало, но это было бы проблемой. Я смотрел на это в течение последнего часа. Я думаю, иногда вам просто нужен новый взгляд, чтобы увидеть очевидное.