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

Операнд постфикса '!' должен иметь необязательный тип; тип "CGVector"

Я использую Xcode 6 со Swift и получаю сообщение об ошибке «Операнд постфикса '!' должен иметь необязательный тип; тип «CGVector» в моем коде говорит, что я должен удалить ! однако, когда я это делаю, я получаю сообщение об ошибке «Значение необязательного типа« CGVector? не развернуто; вы хотели использовать '!' или '?'?" что заставляет меня добавить его снова.

Я не уверен, что делать, вот строка, которая выдает ошибку, проблема со свойством «скорость»:

if(Utils.getNetVec(physicsBody?.velocity!, gravity: gravity, signs: true).dy > CGFloat(0)) {

Как я могу обойти эту проблему?

09.10.2014

Ответы:


1

если вы поставите скобки вокруг physicsBody?.velocity, тогда это сработает

if(Utils.getNetVec((physicsBody?.velocity)!, gravity: gravity, signs: true).dy > CGFloat(0)) {

Это связано с тем, что velocity сам по себе не является необязательным, но сделан необязательным, поскольку доступ к нему осуществляется через необязательную цепочку. Необязательный элемент необходимо развернуть, но просто поставить ! после этого недостаточно, потому что он привязывается к velocity. Добавление скобки приводит к тому, что ! применяется к результату необязательного выражения цепочки.

09.10.2014
  • Спасибо, для тех, у кого такая же проблема, обратите внимание, что ее также можно исправить, развернув physicsBody. 09.10.2014
  • Проверка/развертка physicsBody в первую очередь, вероятно, является лучшей идеей. 09.10.2014
  • Новые материалы

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

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

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

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

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

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

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