この記事は最終更新日から1年以上が経過しています。
UITableViewCellや UITableViewHeaderFooterViewをdequeueしようとした際にクラッシュが発生してしまい、「Nibのregisterかなんかで失敗したのかな…?」と思いregister済みのNibを確認する方法はないかと探したらありました。使い所があるかどうかは分かりませんが、備忘録として残しておきます。
register済みのNibを確認する方法
UITableViewCell
tableView.value(forKey: "_nibMap") |
UITableViewHeaderFooterView
tableView.value(forKey: "_headerFooterNibMap") |
上記の値で取得できるようなので、困った時にデバッガで poして確認してみると良いかと思います。使い所はあるのだろうか…
おまけ
UICollectionViewでも似たようなことができるようです。
UICollectionViewCell
collectionView.value(forKey: "_cellNibDict") |
UICollectionReusableView
collectionView.value(forKey: "_supplementaryViewNibDict") |
参考文献
- ios – UITableView all registered classes / nibs – Stack Overflow
- iOS-Headers/UITableView.h
- iOS-Headers/UICollectionView.h
- iOS 13.1.3 Runtime Headers – UIKitCore – UITableView.h
- iOS 13.1.3 Runtime Headers – UIKitCore – UICollectionView.h
この記事を書いた人
-
iOSアプリを作っています
音楽とガジェットが好きです
最近書いた記事
- 2023.12.11【iOS】Kotlin MultiplatformでApp Clip対応アプリを2か月で作ったので振り返る
- 2023.09.01【iOS】SwiftUIとCoreImageを使って、EXIF情報を表示した画像をシェアする
- 2022.12.24Swift 5.7の新機能を用いて、複数サービスを扱うアプリをリアーキテクチャする
- 2021.05.31SwiftUIに出てくるsomeとは何なのか