我試圖從Firebase中讀取/顯示圖片。我首先編碼圖像,然後將此編碼的字符串發佈到Firebase。這運行良好。當我嘗試解碼來自Firebase的編碼字符串並將其轉換爲圖像時,我得到一個零值異常。Swift2從Firebase中檢索圖片
這就是我現在的儲蓄圖像以火力
var base64String: NSString!
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
self.dismissViewControllerAnimated(true, completion: nil)
imageToPost.image = image
var uploadImage = image as! UIImage
var imageData = UIImagePNGRepresentation(uploadImage)!
self.base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
let ref = Firebase(url: "https://XXX.firebaseio.com")
var quoteString = ["string": self.base64String]
var usersRef = ref.childByAppendingPath("goalImages")
var users = ["image": quoteString]
usersRef.setValue(users)
displayAlert("Image Posted", message: "Your image has been successfully posted!")
}
這是我想讀從火力地堡
// ViewController.swift
import UIKit
import Firebase
class ViewController: UIViewController {
@IBOutlet weak var image: UIImageView!
var base64String: NSString!
@IBAction func buttonClicked(sender: AnyObject) {
sender.setTitle("\(sender.tag)", forState: UIControlState.Normal)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let ref = Firebase(url: "https://XXX.firebaseio.com/goalImages/image/string")
ref.observeEventType(.Value, withBlock: { snapshot in
self.base64String = snapshot.value as! NSString
let decodedData = NSData(base64EncodedString: self.base64String as String, options: NSDataBase64DecodingOptions())
//Next line is giving the error
var decodedImage = UIImage(data: decodedData!)
self.image.image = decodedImage
}, withCancelBlock: { error in
print(error.description)
})
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
錯誤的圖像說:「致命錯誤:意外發現零,同時展開一個可選值「; encodedData是零。有人可以解釋發生了什麼問題嗎?
嘗試NSDataBase64DecodingOptions.IgnoreUnknownCharacters – Jay
我有同樣的問題,我固定它利用@jay評論。您應該寫一個答案,以便提問的用戶可以將其標記爲解決方案。唯一存在的問題是解碼後的圖像旋轉90度,從水平到垂直。我能解決這個問題嗎? – eeschimosu
@eschimosu完成 - 轉換爲答案。就旋轉而言......它不應該是代碼本身中的東西造成的。我作爲一個用例添加了一些代碼給我的答案。 – Jay