Циклический массив в iOS

В этом приложении я сохраняю набор карт NSOrderedSet в объекте "Subject" в основных данных, чтобы пользователи могли сами проверять. Карточка переворачивается и тянется, как мода, но в методе обновления карты у меня возникают некоторые проблемы. Текущая карта отображается нормально, так как я установил, что загружаемое представление (первая карта свойства массива NSOrderedSet). Однако, когда я перетаскиваю и обновляю, он сразу переходит к последней карте, например, если у меня в колоде 5 карт, он начинается с первой, а затем сразу переходит к пятой. Как лучше всего обновить этот метод, чтобы он проходил по желанию?

Я полагаю, мне следует передать ему свойство индекса, например, метод tableViewDelegate, но если кто-то уже делал что-то подобное раньше и имеет лучший способ, который очень приветствуется.

Спасибо за помощь, как всегда.

    func updateCard() {

    //cycle through questions here

    for var i = 0; i < (self.subject.cards?.count)!; i++ {

        self.currentCard = self.subject.cards?.array[i] as? Card
        self.draggableView.questionLabel.text = self.currentCard?.question
        self.draggableView.answerLabel.text = self.currentCard?.answer

    }
}

1 ответ

Решение

В настоящее время, когда вы звоните updateCard цикл for вычисляет на скорости компьютера, и вы можете увидеть только последний индекс.

Вот один из вариантов:

В вашем классе установите хранимую переменную selectedCardIndex в качестве детали реализации, а затем просто увеличьте и обновите представление в updateCard,

var selectedCardIndex = 0

func updateCard() {

    self.selectedCardIndex += 1
    self.currentCard = self.subject.cards?.array[self.selectedCardIndex] as? Card
    self.draggableView.questionLabel.text = self.currentCard?.question
    self.draggableView.answerLabel.text = self.currentCard?.answer

}
Другие вопросы по тегам