Nano Hash - криптовалюты, майнинг, программирование

Вывод метки на пользовательском UICollectionViewCell в Swift, вызывающем сбой Optional.None

У меня есть collectionViewController, в котором я хочу отображать набор пользовательских UICollectionViewCells с некоторыми метками на них. К сожалению, всякий раз, когда я пытаюсь получить доступ к пользовательской метке UICollectionViewCell, это вызывает сбой:

Консоль

фатальная ошибка: невозможно развернуть необязательный.нет

Окно

Тема 1: EXC_BAD_INSTRUCTION (код = EXC_1386_INVOP, субкод = 0x0)

Я пытаюсь получить доступ к ярлыку следующим образом:

cell.name.text = names[indexPath!.item]

Возможно, это происходит из-за того, что моя торговая марка равна нулю? Но поиск ответов ничего не дал, и потому что я не совсем уверен, в чем проблема?/! в моем коде не очень помогает.

MyCustomUICollectionViewController

class ScrambledTextCollectionViewController: UICollectionViewController {

    var names: String[] = ["Anna", "Alex", "Brian", "Jack"]

    override func viewDidLoad() {
        super.viewDidLoad()

        // Register cell classes
        self.collectionView.registerClass(MyCustomCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

    }

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView?) -> Int {
        return 1
    }

    override func collectionView(collectionView: UICollectionView?, numberOfItemsInSection section: Int) -> Int {
        return names.count
    }

    override func collectionView(collectionView: UICollectionView?, cellForItemAtIndexPath indexPath: NSIndexPath?) -> UICollectionViewCell? {
        var cell = collectionView?.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as MyCustomCollectionViewCell

        cell.name.text = names[indexPath!.item]

        return cell
    }
}

MyCustomCollectionViewCell

class MyCustomCollectionViewCell: UICollectionViewCell {

    @IBOutlet var name: UILabel
    init(frame: CGRect) {
        super.init(frame: frame)                
    }
}

  • В какой строке возникает ошибка? Вы добавили точку останова исключения, чтобы попытаться найти, где ошибка? 30.06.2014
  • cell.name.text = имена [indexPath!.item] получает Thread1: EXC_BAD_INSTRUCTION (код = EXC_1386_INVOP, субкод = 0x0) 30.06.2014
  • Может быть, я глуп, но вы не определили var names вне области действия viewDidLoad. Конечно, вы должны определить var... var names в рамках всего объекта, а не только viewDidLoad. 30.06.2014
  • Ах, упс, это потому, что я упростил код для переполнения стека, и этот массив не должен быть там установлен, я это исправлю, но это не проблема. 30.06.2014
  • Возможно, это происходит из-за того, что моя торговая марка равна нулю? Если cell.name действительно nil, это ваша проблема. Можете ли вы записать его значение прямо перед строкой сбоя? 30.06.2014
  • println(cell.word) возвращает ноль, так что вы, кажется, поняли ответ, но как/где я могу сделать его не нулевым? 30.06.2014
  • Попробуйте заменить восклицательный знак именами вопросительных тегов [indexPath?.item] 30.06.2014
  • Я не верю, что это решит мою проблему, она выйдет из строя, даже если я напрямую установлю метку cell.name.text = Hello. Что меня смущает, так это то, что я заставил UITableView использовать пользовательский UITableViewCell почти так же без проблем. 30.06.2014
  • у меня та же проблема, моя метка и изображение возвращают ноль из пользовательской ячейки коллекции. Я проверил соединения и имя класса правильно, но не повезло. любое решение всех? 04.07.2014
  • Это так просто, но я тоже не могу заставить его работать. Swift дарит SWIFTS! 18.08.2014

Ответы:


1

Нашел ответ здесь

Удалить, self.collectionView.registerClass(MyCustomCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

Прочитайте ссылку для подробной причины, почему

18.08.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..