我正在尝试使用核心数据和数组制作一个简单的闪存卡应用。我在获取标签以打印数组中的下一个元素时遇到问题。当按下下一个按钮时,标签将打印出下一个术语,但之后它只会保留在该术语上,是保存到核心数据还是我只是增加错误的问题?我几乎肯定这是fetchData()函数的问题,我只是不确定它的具体问题是什么或如何解决它。
class saveScreenViewController: UIViewController {
@IBOutlet var background: UIView!
@IBOutlet weak var termTextField: UITextField!
@IBOutlet weak var definitionTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func saveButtonPressed(_ sender: Any) {
let card = Card(context: context)
card.term = termTextField.text
card.definition = termTextField.text
if(termTextField.text != "" && definitionTextField.text != ""){
ad.saveContext()
}
termTextField.text = ""
definitionTextField.text = ""
}
@IBAction func cancelButton(_ sender: Any) {
dismiss(animated: true, completion: nil)
}
}
class ViewController: UIViewController {
@IBOutlet weak var termLabel: UILabel!
@IBOutlet weak var definitionLabel: UILabel!
var fetched = [Card]()
var fetchedTerm = [String]()
var fetchedDefinition = [String]()
override func viewDidLoad() {
super.viewDidLoad()
fetchData()
}
func fetchData() {
do {
fetched = try context.fetch(Card.fetchRequest())
for each in fetched {
termLabel.text = each.term
definitionLabel.text = each.definition
fetchedTerm.append(each.term!)
fetchedDefinition.append(each.definition!)
}
} catch {
}
}
@IBAction func nextButton(_ sender: Any) {
var termIterator = fetchedTerm.makeIterator()
var nextTerm = termIterator.next()
termLabel.text = nextTerm
}
}