Я пытался целую вечность получить данные пользователя для сохранения и добавления в таблицу, чтобы их можно было использовать как список дел, но я не могу.Я пытался искать здесь, но ничто не помогло мне.Вот весь мой кодНа самом деле это мой первый раз, когда я использую Xcode и Swift, так что может быть какая-то очевидная ошибка, которую я пропустил.Проблема в начале функции textFieldShouldReturn (извините, я не объяснил это хорошо!)
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return todos.count
}
struct todo {
var text: String
var isDone: Bool
}
// this is the problem area:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
let t = todo(text: textField.text!, isDone: false)
todos.append(t)
tableView.reloadData()
textField.text = ""
textField.resignFirstResponder()
return true
}
var todos = [todo]()
@IBOutlet weak var tableView: UITableView!
// the rest
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
var todo = todos[indexPath.row]
todo.isDone = !todo.isDone
todos[indexPath.row] = todo
tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let id = "todo-cell"
let cell = tableView.dequeueReusableCell(withIdentifier: id, for: indexPath)
let todo = todos[indexPath.row]
cell.textLabel?.text = todo.text
if todo.isDone {
cell.accessoryType = .checkmark
}else{
cell.accessoryType = .none
}
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
let t = todo (text:"clean my room", isDone: false)
todos.append(t)
}
}