2017-11-11 1 views
-2

Ich habe diesen Code, aber ich habe ein Problem, weil es mich schreibt Verwendung von unaufgelösten Bezeichner 'Metadaten', Vielen Dank im Voraus! Ich bin ein Anfänger in Xcode, also bitte erklären Sie es gut!Verwendung von nicht aufgelösten Bezeichner 'Metadaten'

Ich habe das in einem Youtube Tutorial, von Zero2launch!

import UIKit 
import FirebaseDatabase 
import FirebaseAuth 
import FirebaseStorage 




class SignUpViewController: UIViewController { 

    @IBOutlet weak var ProfileImage: UIImageView! 
    @IBOutlet weak var UsernameField: UITextField! 
    @IBOutlet weak var PasswordField: UITextField! 
    @IBOutlet weak var Mailfield: UITextField! 

    var selectedImage: UIImage? 

    @IBAction func dismiss_onClick(_ sender: Any) { 
     dismiss(animated: true, completion: nil) 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 



     ProfileImage.layer.cornerRadius = 40 
     ProfileImage.clipsToBounds = true 

     let tapGesture = UITapGestureRecognizer(target: self, action: #selector(SignUpViewController.handleSelectProfileImageView)) 
     ProfileImage.addGestureRecognizer(tapGesture) 
     ProfileImage.isUserInteractionEnabled = true 





    } 

    @objc func handleSelectProfileImageView() { 
     let pickerController = UIImagePickerController() 
     pickerController.delegate = self 
     present(pickerController, animated: true, completion: nil) 


    } 


    @IBAction func SignUpButton(_ sender: Any) { 
     Auth.auth().createUser(withEmail: Mailfield.text!, password: PasswordField.text! , completion:{(user: User?, error:Error?) in 
      if error != nil { 
       print(error!.localizedDescription) 
       return 
      } 

      let uid = user?.uid 
      let storageRef = Storage.storage().reference(forURL: "gs://gibble-2bed4.appspot.com").child("profile_image").child(uid!) 
      if let profileImg = self.selectedImage, let imageData = UIImageJPEGRepresentation(profileImg, 0.1){ 
       storageRef.putData(imageData, metadata: nil, completion: { (matadata, error) in 
       if error != nil{ 
        return 
       } 

       let profileImageUrl = metadata?.downloadURL()?.absoluteString 

       let ref = Database.database().reference() 
       let usersReference = ref.child("users") 
       let newUserReference = usersReference.child(uid!) 
       newUserReference.setValue(["username" : self.UsernameField.text!, "email": self.Mailfield.text!, "profileImageUrl": profileImageUrl]) 


      }) 

      } 


      }) 







    } 

    } 




extension SignUpViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate { 
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 
     print("did Finish picking Media") 
     if let image = info["UIImagePickerControllerOriginalImage"] as? UIImage{ 
      selectedImage = image 
      ProfileImage.image = image 
      dismiss(animated: true, completion: nil) 

     } 
     print(info) 

    } 



} 

Antwort

1

Sie initialisiert matadata anstelle von Metadaten in der Schließung im folgenden Code (erste Zeile: "(matadata, Fehler)"): (die Sie verwenden möchten)

storageRef.putData(imageData, metadata: nil, completion: { (matadata, error) in 
if error != nil{ 
    return 
} 

let profileImageUrl = metadata?.downloadURL()?.absoluteString 

Die Metadaten in Die letzte Zeile sollte eine Metadaten sein oder Sie müssen sie in der ersten Zeile ändern.

+0

In der Anleitung verwendete er Metadaten in beiden und ich habe ein anderes Problem, die Daten sind nicht JPEG es ist .dms, also was zu tun ist? – faridorid

+0

?????? @ WR-BikAir – faridorid

+0

Versuchen Sie es vielleicht konvertieren? Hast du Zugriff auf die Quelle? –

Verwandte Themen