Я делаю тонкие настраиваемые подклассы TableView и CollectionView с несколькими функциями качества жизни, такими как автоматическая регистрация ячеек для повторного использования, поэтому мне не нужно каждый раз создавать этот код для остальной частимоя жизнь.
Я генерирую cellIdentifiers
на ходу и регистрирую их.Я подумал: «Почему бы также не внедрить автоматическую отмену регистрации», потому что ячейка, очевидно, может быть перезагружена, чтобы никогда не возвращаться.Но я не могу на самом деле узнать, как ..
На основании документации о регистрации ячеек для tableView и collectionView , он говорит следующее:
Вы можете указать nil для nib, если хотите отменить регистрацию файла nib по указанному идентификатору повторного использования.
Однако, если я (в моем подклассе UICollectionView) попытаюсь использовать self.register(nil, forCellWithReuseIdentifier: identifier)
Я получаю ошибку
Ambiguous use of 'register(_:forCellWithReuseIdentifier:)'
Я понятия не имею, почему, но я думаю, что это может быть потому, что обе эти функции:
register(_ cellClass:AnyClass?, forCellWithReuseIdentifier:String)
register(_ nib:UINib?, forCellWithReuseIdentifier:String)
они неоднозначны, когдапопытка передать nil
в качестве первого параметра.
Итак - что на самом деле ожидает от меня документация?Могу ли я бросить ноль на что-нибудь, чтобы помочь выбрать любой из них?И - действительно ли необходима регистрация?Я никогда не делал этого раньше, и я не мог найти много онлайн об этом .. Сколько стоит «регистрация» сотовой ячейки?Я предполагаю, что на самом деле «отменить регистрацию» ячейки будет дороже, чем просто оставить ее зарегистрированной, поскольку отмена регистрации будет реальной операцией - но я могу ошибаться здесь ..
Я понимаючто я могу зарегистрировать разные ячейки с одним и тем же идентификатором, что в сущности отменит предыдущую регистрацию, но если я уверен на 100%, что никогда не буду использовать один и тот же идентификатор для разных ячеек, нужно ли мне отменять регистрацию?