この度、⬇︎のサイトを真似しながらアプリケーションを作ろうとしているのですが、
https://blog.codecamp.jp/programming-iphone-app-development-todo
シュミレータを実行した際に、アプリは開くのですが、+ボタンを押した際に
class AppDelegate: UIResponder, UIApplicationDelegate にThread 1: signal SIGABRTが表示されて何もわからず困っています。
発生している問題・エラーメッセージ
class AppDelegate: UIResponder, UIApplicationDelegate にThread 1: signal SIGABRTが表示されます
該当のソースコード
Swift
1<<<viewcontoroller>>> 2 3import UIKit 4 5class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 6 7 @IBOutlet weak var tableView: UITableView! 8 9 var tasks : [Task] = [] 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14 tableView.dataSource=self 15 tableView.delegate=self 16 // Do any additional setup after loading the view. 17 } 18 19 20 override func viewWillAppear(_ animated: Bool){ 21 getData() 22 tableView.reloadData() 23 } 24 25 26 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 27 return tasks.count 28 } 29 30 31 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 32 let cell = UITableViewCell() 33 let task = tasks[indexPath.row] 34 35 if task.isImportant{ 36 cell.textLabel?.text="♦️"+task.name! 37 }else{ 38 cell.textLabel?.text=task.name! 39 } 40 return cell 41 } 42 43 func getData(){ 44 let 45 context=(UIApplication.shared.delegate as! 46 AppDelegate).persistentContainer.viewContext 47 48 do{ 49 tasks=try context.fetch(Task.fetchRequest()) 50 } 51 catch{ 52 print("読み込み失敗!") 53 } 54 } 55 56 func tableView(_ tableView: UITableView, commit editingStyle:UITableViewCell.EditingStyle,forRowAt indexPath:IndexPath){ 57 let context = (UIApplication.shared.delegate as! 58 AppDelegate).persistentContainer.viewContext 59 if editingStyle == .delete{ 60 let task = tasks[indexPath.row] 61 context.delete(task) 62 (UIApplication.shared.delegate as! AppDelegate).saveContext() 63 do{ 64 tasks = try context.fetch(Task.fetchRequest()) 65 } 66 catch{ 67 print("読み込み失敗!") 68 } 69 } 70 tableView.reloadData() 71 } 72 73} 74 75 76 77 78<<<AddTaskViewController>>> 79 80 81import UIKit 82 83class AddTaskViewController: UIViewController { 84 85 @IBOutlet weak var textField: UITextField! 86 @IBOutlet weak var isImportant: UISwitch! 87 88 override func viewDidLoad() { 89 super.viewDidLoad() 90 91 // Do any additional setup after loading the view. 92 } 93 94 @IBAction func btnTapped(_ sender: Any) { 95 96 let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 97 98 let task = Task(context: context) 99 task.name = textField.text! 100 task.isImportant = isImportant.isOn 101 102 (UIApplication.shared.delegate as! AppDelegate).saveContext() 103 navigationController!.popViewController(animated: true) 104 } 105 106 107
試したこと
似たような質問をしていた方がいたので、再起動などしてみました
補足情報(FW/ツールのバージョンなど)
Xcode Version 11.2 (11B52)
あなたの回答
tips
プレビュー