Xcode 10 - личность литералов больше недоступна

Примечания к выпуску Xcode 10: "Завершение кода для литералов Swift было удалено в Xcode 10"

Так что это не ошибка, из-за которой я не мог добавлять изображения в код (и запускать старые проекты). Как мы затем добавляем изображения с этого момента в код, как только UIImageView(image: не будет принимать никаких png или jpeg.

let cellImage: UIImageView = {
    let image = UIImageView(image: ???))

    return image
}()

Система: macOS Mojave
Xcode: Xcode 10 Beta 4

Ответ 1

В Xcode 10 и Swift 4.2 только старая функция завершения кода (или автозаполнения) Xcode IDE была отменена по-старому. Вот новый способ:

Просто введите image literal и он будет заполнен значком по умолчанию.

enter image description here

Дважды щелкните по этому значку, и он откроет правую часть медиа-библиотеки.

enter image description here

Просто выберите свой образ, и он работает, как раньше!

enter image description here

Ответ 2

Найдите ярлык, чтобы открыть вкладку "Библиотека мультимедиа":

+ + M

На данный момент официальная документация не охватывает некоторые варианты использования на бета-версии Xcode 10, поэтому я не могу найти способ переместить медиа-часть в прежнюю позицию.

Ответ 3

Вы можете использовать медиабиблиотеку в Xcode, чтобы добавить литовку изображения к вашему коду:

Show XCode media library

Затем выберите изображение из библиотеки и перетащите его в свой код.

Choose image from library

Это создаст образный литерал

Ответ 4

В интересах других с устаревшим кодом, который использует Swift Image Literals, сам код и синтаксис самой функции литерального изображения остаются в силе и отлично работают в Xcode 10 с Swift 4.2.

Нет необходимости откатывать или реорганизовывать существующий код, который использует эти литералы изображений, и их можно использовать следующим образом:

imageView.image = #imageLiteral(resourceName: imageNameString)

Только функция завершения кода (или автозаполнение) Xcode IDE была прекращена.


ОБНОВИТЬ

Разница в представлении литерального изображения в предыдущих и текущих версиях или Xcode/Swift:

image = #imageLiteral(resourceName: "flower.jpg")

image = #imageLiteral(resourceName: "flower.jpg")

Как показывает экстракт, литералы изображений были представлены в виде миниатюр их фактического изображения. Однако теперь вместо него используется только общий значок. Предположительно, это связано с уменьшением нагрузки на IDE, устраняя накладные расходы на обработку и отображение миниатюр в линию.

Ответ 5

СОВЕТ: Чтобы исправить три разрешения после добавления буквального изображения в коде.
1. Удалить другое, сохранить только одно изображение
2. Прокомментируйте свой строковый код литеральным изображением, затем в коде появится буквальное изображение, например: #imageLiteral(resourceName: "[email protected]"
3. в значении resourceName удалите @2x и расширение файла, например .png, оставьте только имя изображения: #imageLiteral(resourceName: "image")
4. Раскомментируйте! Изображение будет показано в коде.

Ответ 6

  • использование UIImage (imageLiteralResourceName: 'imageName') не вернет необязательный и работает просто отлично

Ответ 7

В Xcode 11 библиотека мультимедиа теперь находится в View> Show Library (SHIFT + CMD + L).

Ответ 8

Я использую Xcode 10 beta 4, и у меня такая же проблема! Решено использовать старый способ передачи изображения

PizzaModel(
            nome: "Marinara",
            ingredienti: "Pomodoro, Aglio",
            calorie: "729",
            img: UIImage(named: "marinara")!
)