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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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

解決済

2回答

2879閲覧

libc++abi.dylib: terminating with uncaught exception of type NSException の 解決方法(紐付け以外)

MakotoH

総合スコア6

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グッド

0クリップ

投稿2019/11/17 06:40

コレクションビューを使ってyoutubeのタイムラインのようなレイアウトを作成しようとしたところ、
エラー文 libc++abi.dylib: terminating with uncaught exception of type NSException
が出てしまいました。

ストーリーボードは使わず、コードだけの実装を目指しています。
この動画を丸々真似ていました。
参考動画

差し支えなければこのエラーへの対処方法を教えていただきたいです。
よろしくお願いいたします。

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

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UICollectionViewController loadView] instantiated view controller with identifier "UIViewController-BYZ-38-t0r" from storyboard "Main", but didn't get a UICollectionView.' *** First throw call stack:

手を加えたソースコード

AppDelegate

1@UIApplicationMain 2class AppDelegate: UIResponder, UIApplicationDelegate { 3 4 var window: UIWindow? 5 6 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 7 8 window = UIWindow(frame: UIScreen.main.bounds) 9 window?.makeKeyAndVisible() 10 11 let layout = UICollectionViewFlowLayout() 12 window?.rootViewController = UINavigationController(rootViewController: HomeController(collectionViewLayout: layout)) 13 return true 14 }

ViewController

1class HomeController: UICollectionViewController, UICollectionViewDelegateFlowLayout { 2 3 4 override func viewDidLoad() { 5 super.viewDidLoad() 6 7 navigationItem.title = "Home" 8 collectionView?.backgroundColor = UIColor.white 9 collectionView?.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "cellId") 10 } 11 12 override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 13 return 5 14 } 15 16 override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 17 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) 18 cell.backgroundColor = UIColor.blue 19 return cell 20 } 21 22 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 23 return CGSize(width: view.frame.width, height: 200) 24 } 25}

試したこと

おそらくこの質問の応用なんだろうなと思っています。
ただ、僕の場合の解消方法がわからなかったため、質問させていただきました。
参考リンク

ストーリーボードのViewControllerのクラスはHomeControllerになっています。
紐付けが問題ではないと思います。

補足情報

Xcode Version 11.1
Swift 5.1
UIKitを使っています

長文失礼いたしました。
私ごとで大変恐縮ですが、ご協力していただける方がいればよろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Xcode11から、SceneDelegateを使用するようになっており、今までと画面構成が変わっています。

https://qiita.com/edasan/items/68cbe9ab63d48ee71594

この記事が参考になると思います。

Xcode11でStoryboardを使わずに画面を生成するには、Info.plistの中の2箇所の設定を削除した上で、AppDelegateの application(_:didFinishLaunchingWithOptions:)の中に追加していた処理をSceneDelegateのscene(_:willConnectTo:options:)の中で実施する必要があります。

投稿2019/11/23 05:58

TakeOne

総合スコア6299

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

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

MakotoH

2019/11/26 15:35

SceneDelegateを使うとは思いませんでした。 回答していただきありがとうございます!
guest

0

参考動画は見ていませんが、ストーリーボード周りのエラーだと思いますので、ストーリーボードを使う気がないのであれば、ストーリーボードに関連するものをすべて削除してください。

  • Main.stroyboardファイルの削除
  • info.plistのどこかにstoryboardのMainを使う設定があったと思うので、その行を削除

投稿2019/11/18 01:34

takabosoft

総合スコア8356

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

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

MakotoH

2019/11/23 01:43

回答していただきありがとうございます! takabosoftさんが教えてくれたことをもとに、ストーリボード色々いじってみましたが直りませんでした…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問