У меня сейчас большая проблема с XCode и просто MacOS / iOS в целом.
Для фона я использую веб-среду приложения laravel, а редактор изображений, который я использую для обрезки изображений профиля, называется вмешательством в изображение, довольно популярным расширением для laravel.
* 1004. * Чтобы сразу перейти к нему, я создаю базовое c приложение для моего веб-сайта, которое, как и большинство других веб-сайтов, хранит изображения на сервере. Это может быть достигнуто с помощью базового URL
www.mywebsite.com/storage/
с добавлением имени файла в конце. В этом есть кое-что еще, но проблема не в этом.
Я уже использовал его много раз, поскольку существует несколько папок для разных взаимосвязей изображений. Одна папка, давайте просто назовем ее postimages
(так что ссылка теперь www.mywebsite.com/storage/postimages
), возвращает изображения без проблем, и я использовал ее несколько раз до этого момента. Код, который я использую в swift для возврата различных изображений, выглядит следующим образом (в моих указанных c представлениях)
func getPic(urlLink: String)-> Image? {
let baseURL = "https://www.mywebsite.com/storage"
let url = URL(string: baseURL + urlLink)
let data = try? Data(contentsOf: url!)
let image = UIImage(data: data!)
let image2 = Image(uiImage: (image ?? nil)!)
return image2
}
Так что это может быть плохо написано или еще что-то, но это определенно не является источником каких-либо проблем так что подойдите к нему, как вы sh. В любом случае, опять же, я использовал эту функцию в нескольких представлениях для извлечения нескольких разных изображений из разных папок в конечной точке хранилища.
Проблема возникла только при попытке извлечь изображения из другой конечной точки, в частности моей /profileimages
конечной точки. До сих пор, как я уже говорил, у этой функции никогда не было проблем. Теперь, когда я пытаюсь использовать его для получения изображений профиля, приложение вылетает с ошибкой
«Неожиданно найден ноль при развертывании необязательного значения»
вокруг строка, где он let data = try? Data(contentsOf: url!)
.
Теперь это очень огорчило меня, потому что URL (когда зависал) показывал правильную ссылку URL, и когда я вводил их в браузер, он возвращал изображение, о котором идет речь. Так почему же изображение как-то возвращает nil
? Я не знаю.
Чтобы добавить к тайне, я пытался обойти эту проблему, загрузив изображение профиля по умолчанию и просто изменив функцию, чтобы вернуть изображение по умолчанию, если не было данных по URL (даже если это должно быть, 100% времени).
Когда я попытался загрузить изображение профиля по умолчанию, используя ссылку https://www.mywebsite.com/storage/profileimages/blank.jpg
, я попытался добавить его в XCode в качестве ресурса, и над ним был большой красный восклицательный знак. Попытка открыть его с помощью предварительного просмотра привела меня к ошибке «Файл« blank.jpg »не может быть открыт. Возможно, он поврежден или использует формат файла, который Preview не распознает». Это удивительно, потому что на моем Windows компьютере попытка сделать то же самое не имеет никакой проблемы.
Я подозреваю, что, поскольку я использовал расширение для обрезки и подгонки изображений профиля к квадратному размеру, каким-то образом в процессе его сохранения вмешательство изображения повредило файл, и хотя Windows распознает его как JPEG, Swift не распознает.
Я прошу любого из тех, кто более опытен в работе с изображениями, пожалуйста, помогите мне понять это, очевидно, отображение профилей пользователя, имеет жизненно важное значение для создания приложения для мобильных устройств на веб-сайте, и сейчас я не могу ничего сделать, кроме основных c текстовых вкладок без этой работы по назначению.