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
и он будет заполнен значком по умолчанию.
Дважды щелкните по этому значку, и он откроет правую часть медиа-библиотеки.
Просто выберите свой образ, и он работает, как раньше!
Ответ 2
Найдите ярлык, чтобы открыть вкладку "Библиотека мультимедиа":
⇧ + ⌘ + M
На данный момент официальная документация не охватывает некоторые варианты использования на бета-версии Xcode 10, поэтому я не могу найти способ переместить медиа-часть в прежнюю позицию.
Ответ 3
Вы можете использовать медиабиблиотеку в Xcode, чтобы добавить литовку изображения к вашему коду:
Затем выберите изображение из библиотеки и перетащите его в свой код.
Это создаст образный литерал
Ответ 4
В интересах других с устаревшим кодом, который использует Swift Image Literals, сам код и синтаксис самой функции литерального изображения остаются в силе и отлично работают в Xcode 10 с Swift 4.2.
Нет необходимости откатывать или реорганизовывать существующий код, который использует эти литералы изображений, и их можно использовать следующим образом:
imageView.image = #imageLiteral(resourceName: imageNameString)
Только функция завершения кода (или автозаполнение) Xcode IDE была прекращена.
ОБНОВИТЬ
Разница в представлении литерального изображения в предыдущих и текущих версиях или Xcode/Swift:
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")!
)