この記事は最終更新日から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アプリを作っています
音楽とガジェットが好きです