Примером ячейки в контексте iOS-разработки обычно называют прототип (prototype) ячейки в Interface Builder или в коде. Прототип описывает внешний вид и поведение ячейки.
Нельзя записать экземпляр ячейки в файл или сохранить его состояние напрямую, потому что:
UITableViewCell, UICollectionViewCell) являются элементами пользовательского интерфейса и тесно связаны с их иерархией представлений (view hierarchy) и жизненным циклом фреймворка UIKit (или SwiftUI).UILabel, UIImageView и т.д.) и обрабатывают UI-события. Их сериализация в файл (например, через NSCoding или Codable) не поддерживается в полной мере, так как такие объекты не предназначены для хранения вне контекста приложения и UI-иерархии.dataSource) и делегата (delegate) таблицы или коллекции при прокрутке. iOS переиспользует экземпляры ячеек для оптимизации производительности, постоянно обновляя их. Сохранение конкретного экземпляра теряет смысл, так как он является временным представлением данных в определый момент времени.Можно сохранить описание ячейки, которое включает в себя:
UITableViewCell или UICollectionViewCell).reuseIdentifier).subviews) и их констрейнты/фреймы.Это описание используется для создания нового экземпляра ячейки при необходимости, а не для восстановления существующего. Прототипы в сторибордах/ксибах или пользовательские классы ячеек с методом setupViews() как раз и являются таким описанием.
Например, при регистрации ячейки для таблицы:
swift
или
swift
Далее, при запросе ячейки:
swift
Система либо создает новый экземпляр CustomCell на основе зарегистрированного описания, либо возвращает переиспользуемый экземпляр, который затем настраивается. Сам экземпляр ячейки не сохраняется между сессиями или вне контекста таблицы/коллекции.