#ios #swift #xcode #realm #uiimagepickercontroller
#iOS #swift #xcode #realm #uiimagepickercontroller
Вопрос:
У меня есть один контроллер представления, который имеет три поля: UITextField, UIDatePicker и UIImageView.Я выбираю изображение из библиотеки и отображаю его на myImage, и это работает нормально.Я думаю, что мне удалось закодировать изображение в данные, и я думаю, что я также сохраняю его, но когда я пытаюсь выбрать запись из моего контроллера просмотра сведений tableview (декодировать данные в изображение и представить его моему контроллеру просмотра сведений) Я получаю это сообщение «Поток 1: фатальная ошибка: неожиданно обнаружено нуль при развертывании необязательного значения«, рядом с моей функцией декомпрессии, что я делаю не так? Внутри моего метода didTapSave я пытаюсь превратить свое изображение в данные:
let data = myImage.image
let dataImage = data?.pngData()
realm.add(newItem1)
try! realm.commitWrite()
//lastly I call the complitionHandler
completionHandler1?()
наконец, в последнем VC я пытаюсь декодировать его в изображение и представить его:
func decompressImage() -> UIImage {
let imageData = UIImage().jpegData(compressionQuality: 0.2)
let imageDec = UIImage(data: imageData!)
return imageDec!
}
// //we need a formater to change our data into a UIImage
// static let dataFormatter:
override func viewDidLoad() {
super.viewDidLoad()
//we assign
itemLabel.text = asset?.titleNote
dateLabel.text = Self.dateFormatter1.string(from: asset!.date)
imagePresent.image = decompressImage()
}
Комментарии:
1. Я добавил этот фрагмент кода в свой метод imagePickerController, чтобы превратить мой uImage в данные «var dataImage = imageChosen?.pngData()» но как я могу создать объект данных и сохранить его в realm так же, как я делаю с датой и текстом в моей функции didTapSave?
2. Моя первоначальная проблема заключалась в том, что я пытался сохранить изображение в Realm, но после прочтения документации это оказалось недействительным, поэтому я изменил запись в моем классе на Data , которая является допустимой сущностью. Затем я превратил свое изображение в данные (или я так думаю, что сделал?), Но я не знаю, как использовать эти данные, чтобы сохранить их в realm и как извлечь и снова превратить их в изображение в другом VC.
3. Вы добавляете больше контента и информации в комментариях; пожалуйста, не делайте этого. Отредактируйте вопрос, чтобы включить дополнительную информацию, пожалуйста. Кроме того, нам приходится разбирать МНОГО кода, и поскольку он плохо отформатирован и его трудно читать, вопрос, скорее всего, будет закрыт. Realm не очень подходит для хранения изображений, так что это, как правило, плохая идея, если они не маленькие — например, миниатюра. Пожалуйста, используйте инструменты форматирования, чтобы правильно отформатировать код и сократить длину. Затем мы можем взглянуть и посмотреть, сможем ли мы помочь.
4. Две дополнительные вещи 1) Пожалуйста, защитите свой код, безопасно работая с опциями
imageData!
возникает проблема, как будто она равна нулю, происходит сбой кода (в чем проблема — продолжайте читать) 2) Самое главное, чего вы ожидаете здесьlet imageData = UIImage().jpegData(compressionQuality: 0.2)
? Это пустое изображение. Код вdecompressImage
не имеет никакого смысла, поскольку он ничего не делает (кроме сбоя). Можете ли вы уточнить, что вы пытаетесь сделать в целом, а также с этим разделом кода?5. @Jay -Привет, Джей, спасибо, что проявили интерес к моему запросу, я пытаюсь выбрать фотографию из библиотеки и после отображения ее в моем EntryViewController я хочу преобразовать выбранное изображение в данные и сохранить его в Realm.