未解决的标识符错误“电子邮件”

时间:2017-03-16 15:55:40

标签: ios swift firebase filepath firebase-storage

这与之前已解决的问题有关(请参阅此处:Sharing variables)。如果你的变量仍未被识别,但是你传递变量的代码看起来很稳固,我什么都没看到。

在尝试将用户的电子邮件地址用作将图像上传到Firebase存储的文件路径的一部分时,我收到了未解决的标识符错误“电子邮件”。代码在这里:

import UIKit
import Firebase
import MobileCoreServices
import FirebaseStorage

class ThirdViewController: UIViewController {

    @IBOutlet weak var uploadButton: UIButton!
    @IBOutlet weak var progressView: UIProgressView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor(patternImage:     UIImage(named:"Book Funnel")!)

        // Do any additional setup after loading the view.
    }

        @IBAction func uploadButtonWasPressed(sender: AnyObject) {
        let imagePicker = UIImagePickerController()
        imagePicker.sourceType = .photoLibrary
        imagePicker.mediaTypes = [kUTTypeImage as String, kUTTypeMovie as String]
        imagePicker.delegate = self
        self.present(imagePicker, animated: true, completion: nil)

    }

    func uploadImageToFirebaseStorage(data: NSData) {
        let storageRef = FIRStorage.storage().reference(withPath:      email/"/image.jpg")
        let uploadMetadata = FIRStorageMetadata()
        uploadMetadata.contentType = "image/jpeg"
        let uploadTask = storageRef.put(data as Data, metadata:     uploadMetadata) { (metadata, error) in
            _ = metadata?.downloadURL
            if (error != nil) {
                print("I recieved an error! \(error?.localizedDescription)")
            } else {
                print ("Upload complete! Here's some metadata! \(metadata)")
    }

            let alert = UIAlertController(title: "Success!", message: "Image uploaded", preferredStyle: UIAlertControllerStyle.alert)
            alert.addAction(UIAlertAction(title: "okay", style: UIAlertActionStyle.default, handler: nil))
            self.present(alert, animated: true, completion: nil)

    }

        uploadTask.observe(.progress) { [weak self] (snapshot) in
            guard let strongSelf = self else { return }
            guard let progress = snapshot.progress else { return }
            strongSelf.progressView.progress =   Float(progress.fractionCompleted)

    }


           }

    var toPass: String!

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?)   {
        // Get the new view controller using segue.destinationViewController.
       // Pass the selected object to the new view controller.
    }
    */

}

extension ThirdViewController: UIImagePickerControllerDelegate,  UINavigationControllerDelegate {
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        dismiss(animated: true, completion: nil)
    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        guard let mediaType: String = info[UIImagePickerControllerMediaType] as? String else {
            dismiss(animated: true, completion: nil)
            return
        }
        if mediaType == (kUTTypeImage as String) {
            if let originalImage = info[UIImagePickerControllerOriginalImage] as? UIImage, let imageData = UIImageJPEGRepresentation(originalImage, 0.8) {
                uploadImageToFirebaseStorage(data: imageData as NSData)
            }
        } else {
            print("Please select an image")
        }

            dismiss(animated: true, completion: nil)

        func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
            if (segue.identifier == "segueTest") {
                //Checking identifier is crucial as there might be multiple
                // segues attached to same view
                if let fourthVC = segue.destination as? FourthViewController {
                    fourthVC.toPass =  "email"


                }

            }
        }
    }

}

0 个答案:

没有答案