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

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

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

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

Swift

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

解決済

swift tableviewへUILabelを追加した際のエラー

mars111
mars111

総合スコア17

Xcode

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

Swift

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

1回答

0リアクション

0クリップ

145閲覧

投稿2022/07/09 13:48

問題点

こちらのサイトを参考に、TableViewを設置し、cellに2つのUILabelと1つのUIImageViewを設置しました。これらにはそれぞれ1~3のtagを設定しています
しかし、追加したUILabelに対し、

swift

Fatal error: Unexpectedly found nil while unwrapping an Optional value

とのエラーが出てしまいます。
UILabelを外した場合、UIImageViewは問題なく表示されるため、UILabelの方に問題があると思われます。
原因について、お教えいただけたらと思います。

コード

swift

// // AlbumListViewController.swift // ARalbum // // Created by ryotaro tsuji on 2022/07/09. // import UIKit import RealmSwift class AlbumListViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{ @IBOutlet weak var tableView: UITableView! var AlbumArray = try! Realm().objects(Album.self).sorted(byKeyPath: "date", ascending: true) override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self // // カスタムセルを登録する // let Addnib = UINib(nibName: "AddTableViewCell", bundle: nil) // tableView.register(Addnib, forCellReuseIdentifier: "AddCell") } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return AlbumArray.count + 1 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if indexPath.row == 0 { let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath as IndexPath) cell.backgroundColor = .gray return cell }else{ let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath as IndexPath) let cellImageView = cell.contentView.viewWithTag(3) as! UIImageView let titleLabel = cell.contentView.viewWithTag(1) as! UILabel let dateLabel = cell.contentView.viewWithTag(2) as! UILabel let album = AlbumArray[indexPath.row - 1] titleLabel.text = album.title dateLabel.text = "\(album.date)" let showAlbumImageList = try! Realm().objects(AlbumImage.self).filter("parentID == %@", album.id) if showAlbumImageList.count != 0{ let showAlbumImage = showAlbumImageList.first let image_url = showAlbumImage?.directory let path = getFileURL(fileName: image_url!).path if FileManager.default.fileExists(atPath: path) { if let imageData = UIImage(contentsOfFile: path) { cellImageView.image = imageData print(imageData) } else { print("Failed to load the image.") } } else { print("Image file not found.") } } return cell } } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { // セルの選択を解除 tableView.deselectRow(at: indexPath, animated: true) if indexPath.row == 0{ let choiceModuleViewController = self.storyboard?.instantiateViewController(withIdentifier: "ChoiceModule") as! ChoiceModuleViewController self.present(choiceModuleViewController, animated: true, completion: nil) } } func getFileURL(fileName: String) -> URL { let docDir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! return docDir.appendingPathComponent(fileName) } }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

xg63ex2b

2022/07/10 00:03

> これらにはそれぞれ1~3のtagを設定しています Tagが違ってviewWithTag()の戻りがnilになっているのでしょうか。 Xcodeの右側のAttributesインスペクタのViewセクションのTagが含まれる形で キャプチャを貼り付けていただけますでしょうか。 (質問欄は編集できます。画像の挿入で画像が貼り付けられます)
mars111

2022/07/10 01:03

ご回答ありがとうございます! ご質問いただいて、改めてみたところ、tagではなく、Linesの数字を変更していました、、、 原因としては、tagが0のままだったことです。 ドツボにハマっており気がついていませんでした。
xg63ex2b

2022/07/10 01:33

コメントありがとうございます。 解決したようで良かったです。 ご自身で回答を入力して自己解決の形で終了すると良いと思います。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Xcode

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

Swift

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