2017-11-11 90 views
-2

我有这个代码,但我有一个问题,因为它写我使用未解析的标识符'元数据',在此先感谢!我是Xcode的初学者,请解释清楚!使用未解析的标识符'元数据'

我从一个YouTube教程中获得了这个,从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) 

    } 



} 

回答

1

您初始化matadata而不是元数据(您想使用)在下面的代码在封闭(第一行: “(matadata,错误)”):

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

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

中的元数据最后一行应该是matadata,或者您必须在第一行更改它。

+0

在教程中,他使用了元数据,我有另一个问题,数据不是JPEG它是.dms,那么该怎么办? – faridorid

+0

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

+0

尝试转换它可能吗?你有权访问源代码? –

相关问题