С эмуляцией карт на базе хоста (HCE) в Android 4.4 вы можете эмулировать протокол ISO / IEC 14443-4. Более конкретно, вы можете эмулировать структуры приложений в соответствии с ISO / IEC 7816-4 (при этом приложения эмуляции карт должны выбираться с помощью AID). Кроме того, API не дает вам никаких средств, чтобы указать, следует ли использовать эмуляцию карты с использованием протокола типа A или типа B.
. Что касается эмуляции различных протоколов MIFARE:
Примечание о функции HCE, доступной в CyanogenMod с версии 9.1 до версии 10.2 : Это будет подражать любому ISO / IEC 14443-4 без требования к структуре приложения в соответствии с ISO / IEC 7816-4. Вы даже можете выбрать, хотите ли вы эмулировать протокол типа A или типа B. Поэтому должно быть возможно (хотя я еще не тестировал), чтобы подражать любому из трех протоколов DESFire. Однако даже с функцией HCE CyanogenMod невозможно эмулировать протоколы MIFARE Ultralight или Classic. Более того, также невозможно влиять на параметры протокола низкого уровня, такие как UID, ATQA, SAK или ATS.
Исправьте опечатку (и)
func dequeueReusableCell<T: UICollectionViewCell>( ...
Аннотируйте тип и удалите приведение типа
let cell : TacoCell = collectionView.dequeueReusableCell(forIndexPath: indexPath)
Вы должны разрешить общее ограничение для dequeReusableCell
: <T: UICollectionViewCell>
вместо <T: UICollectionView>
:
func dequeReusableCell<T: UICollectionViewCell>(forIndexPath indexPath: IndexPath) -> T where T: ReusableView{
Очевидно, я бы предположил, что TacoCell
является типом ReusableView
.