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)