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

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

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

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

Swift

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

Q&A

解決済

1回答

5542閲覧

Could not load NIB in bundleのエラーが解決できません。

bern

総合スコア15

Xcode

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

Swift

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

0グッド

0クリップ

投稿2020/09/05 01:05

編集2020/09/05 10:55

前提・実現したいこと

ラインのようなアプリを作っています。
メッセージが表示される画面の下にメッセージを入力するxibを表示させようとしたところ、読み込み途中にsimulatorが落ちてしまいました。
top画面からメッセージのページに移動したとき下にメッセージを入力するxibが表示されるようにしたいです。
どなたか分かる方がいましたらご教授願います。

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

Thread 1: Exception: "Could not load NIB in bundle: 'NSBundle </Users/urs/Library/Developer/CoreSimulator/Devices/39C1E254-37A0-4FF3-8E90-ABD8997AB3D1/data/Containers/Bundle/Application/69657211-09DB-49A3-BC19-2EE4AC67216D/ChatAppwithFirebase.app> (loaded)' with name 'ChatInputAccessoryView'"

該当のソースコード

swift

1// ChatRoomViewController.swift 2 3import UIKit 4 5class ChatRoomViewController: UIViewController { 6 7 private let cellId = "cellId" 8 9 private var chatInputAccessoryView: ChatInputAccessoryView = { 10 let view = ChatInputAccessoryView() 11 view.frame = .init(x: 0, y: 0, width: view.frame.width, height: 100) 12 return view 13 }() 14 15 @IBOutlet weak var chatRoomTableView: UITableView! 16 17 override func viewDidLoad() { 18 super.viewDidLoad() 19 20 chatRoomTableView.delegate = self 21 chatRoomTableView.dataSource = self 22 chatRoomTableView.register(UINib(nibName: "ChatRoomTableViewCell", bundle: nil), forCellReuseIdentifier: cellId) 23 chatRoomTableView.backgroundColor = .rgb(red: 118, green: 140, blue: 100) 24 } 25 26 override var inputAccessoryView: UIView? { 27 get { 28 return chatInputAccessoryView 29 } 30 } 31 32 override var canBecomeFirstResponder: Bool { 33 return true 34 } 35} 36 37extension ChatRoomViewController: UITableViewDelegate,UITableViewDataSource { 38 39 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 40 chatRoomTableView.estimatedRowHeight = 20 41 return UITableView.automaticDimension 42 } 43 44 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 45 return 10 46 } 47 48 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 49 let cell = chatRoomTableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) 50 return cell 51 } 52}

swift

1// ChatInputAccessoryView.swift 2 3import UIKit 4 5class ChatInputAccessoryView: UIView { 6 7 override init(frame: CGRect) { 8 super.init(frame: frame) 9 10 nibInit() 11 } 12 13 private func nibInit() { 14 let nib = UINib(nibName: "ChatInputAccessoryView", bundle: nil) 15 guard let view = nib.instantiate(withOwner: self, options: nil).first as? UIView else { return } 16 17 view.frame = self.bounds 18 view.autoresizingMask = [.flexibleHeight, .flexibleWidth] 19 self.addSubview(view) 20 } 21 22 required init?(coder: NSCoder) { 23 fatalError("init(coder:) has not been implemented") 24 } 25 26}

試したこと

inputがiputになっていたのでinputに直しました。
ファイル名などをタイピンングで打って書いたのでファイル名をコピペしてコードに入れ直しました。

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

xcode 11.7
macos catalina 10.15.6

https://www.youtube.com/watch?v=Iu_sax4AEjw&list=LLRUlcazP15l6ofFC-mcgksQ&index=2&t=595s
この動画を見て作ろうとしていました。

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

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

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

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

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

TsukubaDepot

2020/09/05 09:56

xibファイルは作られたのでしょうか。 「ファイル名をコピペして」とありますが、これはどこかに載っていたコードを参考にされたのでしょうか。 そうであれば、URLなどもご質問本文に追記していただければと思います。
TsukubaDepot

2020/09/05 11:14

URLの動画(EP3)の1分30秒あたりから xib ファイルの作り方について説明があるようですが、その手順通りにされているか、もう一度確認されるといいかと思います。 ChatViewController.swift ChatViewController.nib この2つのファイルがフォルダ内に作成されているはずです。
bern

2020/09/05 11:34

返信ありがとうございます。 xibファイルは作成してあります。 ChatInputAccesoryView.xib ChatRoomViewController.swift この2つがフォルダ内にあります。 このファイルができる前まではちゃんと動いていたので、多分このファイルのどこかがおかしいと思っているのですが、どうしても見つけられません。
TsukubaDepot

2020/09/05 11:40 編集

ソースコード内のファイル名:ChatInputAccessoryView 上記コメントのファイル名:ChatInputAccesoryView ソースコード内のファイル名はssとsが二つ、コメント中のファイル名はsが一つと異なっていますが、それは大丈夫でしょうか。
bern

2020/09/05 11:43

アクセサリーの綴り気付きませんでした 直して実行したところうまくうごきました! ありがとうございます????
TsukubaDepot

2020/09/05 11:45

それはよかったです(綴り間違いはよくあるので)。 では、自己解決しておいていただけますでしょうか。
bern

2020/09/05 11:46

わかりました。 本当にありがとうございました????
guest

回答1

0

自己解決

アクセサリーの綴りが間違っていました。
sがひとつ足りませんでした。
修正し実行したところうまく動きました。

ChatInputAccesoryView.xib → ChatInputAccessoryView.xib

TsukubaDepotさんありがとうございました。

投稿2020/09/05 11:48

bern

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問