Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我应该如何更改这行代码以使其正确?_Ios_Swift_Xcode - Fatal编程技术网

Ios 我应该如何更改这行代码以使其正确?

Ios 我应该如何更改这行代码以使其正确?,ios,swift,xcode,Ios,Swift,Xcode,代码的最后一行:self.setUpUserimg:url有问题。请帮我修一下 我认为这行代码是Swift的旧版本。但是,我也尝试了它的新版本,即self.SetUpUserImage:url!。absoluteString,也会弹出一系列错误 创建的错误是: 无法将“Void”类型的值转换为预期的参数类型“String” 如下图所示: 我真的需要一些帮助 import UIKit import Firebase import FirebaseDatabase import FirebaseSt

代码的最后一行:self.setUpUserimg:url有问题。请帮我修一下

我认为这行代码是Swift的旧版本。但是,我也尝试了它的新版本,即self.SetUpUserImage:url!。absoluteString,也会弹出一系列错误

创建的错误是:

无法将“Void”类型的值转换为预期的参数类型“String”

如下图所示:

我真的需要一些帮助

import UIKit
import Firebase
import FirebaseDatabase
import FirebaseStorage
import SwiftKeychainWrapper

class UserVC: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var userImagePicker: UIImageView!        
    @IBOutlet weak var usernameField: UITextField!        
    @IBOutlet weak var completeSignInBtn: UIButton!

    var userUid: String!        
    var emailField: String!        
    var passwordField: String!        
    var imagePicker : UIImagePickerController!        
    var imageSelected = false        
    var username: String!

    override func viewDidLoad() {
        super.viewDidLoad()            
        imagePicker = UIImagePickerController()            
        imagePicker.delegate = self            
        imagePicker.allowsEditing = true
    }

    func keychain(){            
        KeychainWrapper.standard.set(userUid, forKey: "uid")
    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

        if let image = info[.originalImage] as? UIImage {            
            userImagePicker.image = image                
            imageSelected = true                
        } else {                
            print("image wasn't selected")
        }            
        imagePicker.dismiss(animated: true, completion: nil)
    }

    func setUpUser(img: String){            
        let userData = [
            "username": username!,
            "userImg": img
        ]            
        keychain()            
        let setLocation = Database.database().reference().child("users").child(userUid)            
        setLocation.setValue(userData)
    }

   func uploadImg() {            
        if usernameField.text == nil {                
            print("must have username")                
            completeSignInBtn.isEnabled = false                
        } else {                
            username = usernameField.text                
            completeSignInBtn.isEnabled = true
        }
        guard let img = userImagePicker.image, imageSelected == true else {                
            print("image must be selected")                
            return
        }            
        if let imgData = img.jpegData(compressionQuality: 0.2) {              
            let imgUid = NSUUID().uuidString                
            let metadata = StorageMetadata()                
            metadata.contentType = "img/jpeg"                
           Storage.storage().reference().child(imgUid).putData(imgData, metadata: metadata) { (metadata, error) in                    
                if error != nil {                        
                    print("did not upload img")
                } else {                        
                    print("uploaded")                    
                    let downloadURl  = metadata?.storageReference?.downloadURL(completion: { (url, error) in if error != nil {
                        print(error as Any)
                        }})
                    if let url = downloadURl {
                        self.setUpUser(img: url)                            
                    }
            }
    }
    }
    }


    @IBAction func completeAccount(_ sender: Any){

        Auth.auth().createUser(withEmail: emailField, password: passwordField, completion: { (user,error) in                
            if error != nil {                    
                print("can't create user \(error)")                    
            } else {                    
                if let user = user {                        
                    self.userUid = user.user.uid
                }
            }                
            self.uploadImg()
        })

        dismiss(animated: true, completion: nil)
    }

    @IBAction func seletedImagePicker(_ sender: Any){

        present(imagePicker, animated: true, completion: nil)
    }

    @IBAction func cancel(_ sender: AnyObject){

        dismiss(animated: true, completion: nil)
    }
}

请检查下面的代码

var imgData: NSData = NSData(data: UIImageJPEGRepresentation((self.img_Photo?.image)!, 0.5)!)
self.uploadProfileImageToFirebase(data: imgData)

func uploadProfileImageToFirebase(data:NSData){
    guard let userID = Auth.auth().currentUser?.uid else {
        return
    }
    let storageRef = Storage.storage().reference().child("Pics").child("\(userID).jpg")
    if data != nil {
        storageRef.putData(data as Data, metadata: nil, completion: { (metadata, error) in
            if(error != nil){
                print(error)
                return
            }

            // Fetch the download URL
            storageRef.downloadURL { url, error in
                if let error = error {
                    // Handle any errors
                    if(error != nil){
                        print(error)
                        return
                    }
                } else {
                    // Get the download URL for 'images/stars.jpg'

                    let urlStr:String = (url?.absoluteString) ?? ""
                    /////
                  self.setUpUser(img: urlStr) 

                }
            }
        })
    }

}

“有问题”这些问题是什么?您需要提供更多信息。编辑您的问题以显示setUpUserimg:的声明,您还需要告诉我们有什么问题。XXX遇到的问题是令人发狂的含糊不清和无益的。对于之前的不便,我深表歉意。