TIL
[Swift] ReuseIdentifier 하드 코딩 줄이기
Kim Roks
2025. 1. 9. 18:51
TableView나 CollectionView를 사용하는 경우 재사용 셀 등록 방법
tableView.register(MyTableViewCell.self, forCellReuseIdentifier: "cell")
혹은 rxSwift를 사용하는 경우
viewModel.posts.bind(to: TableView.rx.items("Cell", cellType: MyCell.self)) { row, data, cell in
...
하지만 이는 수정에 있어서 번거로움을 야기하고 오타가 날 수 도 있다는 점에서 개선의 여지가 있음
개선 방안
1. Reusable 프로토콜 정의
protocol Reusable {
static var reuseIdentifier: String { get }
}
2. (선택사항) Reuseble 확장
extension Reusable {
static var reuseIdentifier: String {
return String(describing: self)
}
}
3. Cell클래스에서 Reuseble 채택
final class MyCell: UITableViewCell, Reusable {
... }
4. 사용하기
MyTableView.register(MYCell.self, forCellReuseIdentifier: MyCell.reuseIdentifier)