質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

262閲覧

Tread 1:signal SIGABRTが出てアプリがビルドできない

oilfriedchicken

総合スコア18

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2018/12/14 08:58

前提・実現したいこと

Todoリストを作成しているのですが、セルタップによるタスク編集を実装途中に以下のエラーでビルドができなくなってしまいました。そのエラーを解消したいです。

発生している問題・エラーメッセージ

エラーは以下の部分で表示されています。(AppDelegate.swift)
下はデバック画面になります。

class AppDelegate: UIResponder, UIApplicationDelegate { < Tread 1:signal SIGABRT 2018-12-14 17:21:28.889 TaskControl[6327:955929] *** Assertion failure in -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.6.21/UITableView.m:6600 2018-12-14 17:21:28.907 TaskControl[6327:955929] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier TaskCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' *** First throw call stack: ( 0 CoreFoundation 0x000000010e127d4b __exceptionPreprocess + 171 1 libobjc.A.dylib 0x000000010b00121e objc_exception_throw + 48 2 CoreFoundation 0x000000010e12be42 +[NSException raise:format:arguments:] + 98 3 Foundation 0x000000010ab9666d -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195 4 UIKit 0x000000010ba4c1e8 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 259 5 TaskControl 0x000000010aa03981 _TFC11TaskControl14ViewController9tableViewfTCSo11UITableView12cellForRowAtV10Foundation9IndexPath_CSo15UITableViewCell + 353 6 TaskControl 0x000000010aa041e7 _TToFC11TaskControl14ViewController9tableViewfTCSo11UITableView12cellForRowAtV10Foundation9IndexPath_CSo15UITableViewCell + 87 7 UIKit 0x000000010ba5f584 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 757 8 UIKit 0x000000010ba5f7e2 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 74 9 UIKit 0x000000010ba332b0 -[UITableView _updateVisibleCellsNow:isRecursive:] + 3295 10 UIKit 0x000000010ba68b64 -[UITableView _performWithCachedTraitCollection:] + 110 11 UIKit 0x000000010ba4f3be -[UITableView layoutSubviews] + 222 12 UIKit 0x000000010b9b6ab8 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237 13 QuartzCore 0x0000000110f8fbf8 -[CALayer layoutSublayers] + 146 14 QuartzCore 0x0000000110f83440 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366 15 QuartzCore 0x0000000110f832be _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24 16 QuartzCore 0x0000000110f11318 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280 17 QuartzCore 0x0000000110f3e3ff _ZN2CA11Transaction6commitEv + 475 18 QuartzCore 0x0000000110f3ed6f _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 113 19 CoreFoundation 0x000000010e0cc267 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 20 CoreFoundation 0x000000010e0cc1d7 __CFRunLoopDoObservers + 391 21 CoreFoundation 0x000000010e0b08a6 CFRunLoopRunSpecific + 454 22 UIKit 0x000000010b8ebaea -[UIApplication _run] + 434 23 UIKit 0x000000010b8f1c68 UIApplicationMain + 159 24 TaskControl 0x000000010aa0bc0f main + 111 25 libdyld.dylib 0x000000010f0d768d start + 1 26 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)

該当のソースコード

関係のなさそうなコードは削りました、、

swift

1 2//ViewController 3 4import UIKit 5import CoreData 6 7class ViewController: UIViewController , UITableViewDataSource, UITableViewDelegate { 8 9 // MARK: - Properties 10 11 @IBOutlet weak var taskTableView: UITableView! 12 13 var tasks:[Task] = [] 14 var tasksToShow:[String:[String]] = ["MustDo":[], "WantToDo":[]] 15 let taskCategories:[String] = ["MustDo", "WantToDo"] 16 17 private let segueEditTaskViewController = "SegueEditTaskViewController" 18 19 20 // MARK: - View Life Cycle 21 22 23 override func viewDidLoad() { 24 super.viewDidLoad() 25 taskTableView.dataSource = self 26 taskTableView.delegate = self 27 } 28 29 override func viewWillAppear(_ animated: Bool) { 30 31 getData() 32 33 34 taskTableView.reloadData() 35 } 36 // MARK: - Method of Getting data from Core Data 37 38 func getData() { 39 40 let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 41 do { 42 43 let fetchRequest: NSFetchRequest<Task> = Task.fetchRequest() 44 tasks = try context.fetch(fetchRequest) 45 46 47 for key in tasksToShow.keys { 48 tasksToShow[key] = [] 49 } 50 51 for task in tasks { 52 tasksToShow[task.category!]?.append(task.name!) 53 } 54 } catch { 55 print("Fetching Failed.") 56 } 57 } 58 59 // MARK: - Table View Data Source 60 61 62 func numberOfSections(in tableView: UITableView) -> Int { 63 return taskCategories.count 64 } 65 func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 66 return taskCategories[section] 67 } 68 69 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 70 return tasksToShow[taskCategories[section]]!.count 71 } 72 73 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 74 guard let cell = taskTableView.dequeueReusableCell(withIdentifier: TaskTableViewCell.reuseIdentifier, for: indexPath) as? TaskTableViewCell else { 75 fatalError("Unexpected Index Path") 76 } 77 78 let sectionData = tasksToShow[taskCategories[indexPath.section]] 79 let cellData = sectionData?[indexPath.row] 80 81 cell.taskLabel.text = "(cellData!)" 82 83 return cell 84 } 85 86 // MARK: - Navigation 87 88 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 89 guard let destinationViewController = segue.destination as? AddTaskViewController else { return } 90 91 92 let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 93 destinationViewController.context = context 94 if let indexPath = taskTableView.indexPathForSelectedRow, segue.identifier == segueEditTaskViewController { 95 96 let editedCategory = taskCategories[indexPath.section] 97 let editedName = tasksToShow[editedCategory]?[indexPath.row] 98 99 let fetchRequest: NSFetchRequest<Task> = Task.fetchRequest() 100 fetchRequest.predicate = NSPredicate(format: "name = %@ and category = %@", editedName!, editedCategory) 101 102 do { 103 let task = try context.fetch(fetchRequest) 104 destinationViewController.task = task[0] 105 } catch { 106 print("Fetching Failed.") 107 } 108 } 109 } 110} 111 112//TaskTableViewController 113 114import UIKit 115 116class TaskTableViewCell: UITableViewCell { 117 118 // MARK: - Properties 119 120 static let reuseIdentifier = "TaskCell" 121 122 // MARK: - 123 @IBOutlet var taskLabel: UILabel! 124 125 126 127 // MARK: - Initialization 128 129 override func awakeFromNib() { 130 super.awakeFromNib() 131 // Initialization code 132 } 133 134 override func setSelected(_ selected: Bool, animated: Bool) { 135 super.setSelected(selected, animated: animated) 136 137 // Configure the view for the selected state 138 } 139} 140 141//AddTaskViewController 142 143import UIKit 144class AddTaskViewController: UIViewController { 145 // MARK: - Properties 146 var context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 147 var task: Task? 148 @IBOutlet weak var taskTextField: UITextField! 149 @IBOutlet weak var categorySegmentedControl: UISegmentedControl! 150 // MARK: - 151 var taskCategory = "MustDo" 152 override func viewDidLoad() { 153 super.viewDidLoad() 154 if let task = task { 155 taskTextField.text = task.name 156 taskCategory = task.category! 157 switch task.category! { 158 case "MustDo": 159 categorySegmentedControl.selectedSegmentIndex = 0 160 case "WantToDo": 161 categorySegmentedControl.selectedSegmentIndex = 1 162 default: 163 categorySegmentedControl.selectedSegmentIndex = 0 164 } 165 } 166 } 167 // MARK: - Actions of Button 168 169

試したこと

すべてコネクトし直し、xcodeの再起動も行いましたが治りませんでした。。。

補足情報(FW/ツールのバージョンなど)

swift 3
xcode 8.2.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

reason: 'unable to dequeue a cell with identifier TaskCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

TaskCellのセルが登録されていないので登録して下さい。

  • そもそも登録されていない
  • 登録しているけどIDが間違っている

など。

投稿2018/12/14 09:16

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oilfriedchicken

2018/12/14 23:37

解決いたしました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問