2016-12-15 2 views
0

Я пытаюсь кодировать UIImage как base64 string. Мой код заключается в следующем:UIImage просмотреть кодировку base64

@IBOutlet weak var photoImageView: UIImageView! 

let image : UIImage = UIImage(named:"photoImageView")! 
let imageData:NSData = UIImagePNGRepresentation(image)! 
let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength) 

проблема заключается в том, что я получаю такую ​​ошибку: «неустранимая ошибка: неожиданно нашли ноль в то время как разворачивание необязательное значение»

Что я делаю неправильно?

+0

, какая линия вы получите эту ошибку? – Enix

+0

этот: пусть изображение: UIImage = UIImage (названо: «photoImageView»)! – markan3

+1

убедитесь, что в проект добавлен «photoImageView», проверьте орфографию, прописную букву и строчные буквы. – prasad

ответ

0

Комментарий Прасада, скорее всего, проблема, с которой вы сталкиваетесь.

Для любых функций, которые возвращают опции, я обычно использую синтаксис или охранники if - let, чтобы убедиться, что я случайно не разворачиваю нуль.

if let image = UIImage(named:"photoImageView") { 
    if let imageData = UIImagePNGRepresentation(image) { 
     // swift 2 
     // imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength) 

     // swift 3 
     let strBase64:String = imageData.base64EncodedString(options: [.lineLength64Characters]) 
    } else { 
     print("can't get PNG representation") 
    } 
} else { 
    print("can't find photoImageView image file") 
} 
0

@Enix Ваш комментарий сделал трюк. Решение моей проблемы была эта линия

let image = photoImageView.image 

Как вы указали UIImage инициализируется с активом изображения, а не с точки зрения изображения

Смежные вопросы