Я использую итераторы для циклического перебора массива флеш-карт, но итератор идет по другому, например, я проверил его, введя номера 1-7 как новые карты (по порядку), но когда я пролистывалколода отображает только 2, затем 4, затем 6, а затем обратно 2. Когда я распечатываю deckIterator в функциях, он возвращает соответствующее целое число, поэтому для карты 2 итератор печатает 2. Я не уверен, если я 'используя итератор правильно, кто-нибудь может указать мне правильное направление?
override func viewDidLoad() {
super.viewDidLoad()
fetchData()
}
func fetchData() {
deckArray.removeAll()
deckIterator = nil
do {
fetched = try context.fetch(Card.fetchRequest())
for each in fetched {
let term = each.term
let definition = each.definition
termLabel.text = each.term!
definitionLabel.text = each.definition!
let Card = card(term: term!, definition: definition!)
deckArray.append(Card)
}
} catch {
print(error)
}
deckIterator = deckArray.makeIterator()
}
@IBAction func leftSwipe(_ sender: UISwipeGestureRecognizer) {
getNextCardPlease()
self.definitionLabel.isHidden = true
alreadyFlipped = false
}
func getNextCardPlease(){
if(deckIterator?.next() == nil){
fetchData()
} else {
let next = deckIterator?.next()
termLabel.text = next?.term
definitionLabel.text = next?.definition
}
}