[英]Swift 4 Error Using Firebase in Simulator Trying to Upload Image From Photo Library
我收到以下錯誤:
發現擴展時遇到的錯誤:Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled}
使用模擬器並從 iPhone 存儲的庫中選擇照片時....
任何人都可以看到下面代碼中可能存在的問題嗎?
import UIKit
import Firebase
class PictureViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var descriptionTextField: UITextField!
@IBOutlet weak var nextButton: UIButton!
var imagePicker = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
imagePicker.delegate = self
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
imageView.image = image
imageView.backgroundColor = UIColor.clear
imagePicker.dismiss(animated: true, completion: nil)
}
@IBAction func cameraTapped(_ sender: Any) {
imagePicker.sourceType = .savedPhotosAlbum
imagePicker.allowsEditing = false
present(imagePicker, animated: true, completion: nil)
}
@IBAction func nextTapped(_ sender: Any) {
let imagesFolder = Storage.storage().reference().child("images")
let imageData = UIImagePNGRepresentation(imageView.image!)!
imagesFolder.child("images.png").putData(imageData, metadata: nil, completion: {(metadata, error) in
print("We tried to upload!")
if error != nil {
print("We had an error:\(error)")
} else {
self.performSegue(withIdentifier: "selectUsersegue", sender: nil)
}
})
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
}
}
嘗試將視圖控制器的 modalPresentationStyle 指定為.overFullScreen
@IBAction func cameraTapped(_ sender: Any) {
imagePicker.sourceType = .savedPhotosAlbum
imagePicker.allowsEditing = false
imagePicker.modalPresentationStyle = .overFullScreen
present(imagePicker, animated: true, completion: nil)
}
不知道它是否適合你,但我想你應該試一試。 問題之一可能是,您無權訪問設備上的“照片”。 (如果這是你的所有代碼,看起來我是對的)
幾周前我遇到了類似的問題,添加權限請求解決了它。
編輯
// Authorization for Photos
let photos = PHPhotoLibrary.authorizationStatus()
if photos == .notDetermined {
PHPhotoLibrary.requestAuthorization({status in
if status == .authorized{
...
} else {}
})
}
還要確保將這些添加到 Info.plist
<key>NSPhotoLibraryUsageDescription</key>
<string>Description.</string>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.