Swift错误:用户ID的EXC BAD指令代码= EXCI386

时间:2017-09-11 15:04:55

标签: swift swift4

我在反击此错误时正在编写应用登录页面。我不知道如何调试它所以我问我编码错误的地方。我在keychain包装器代码上遇到了问题: KeychainWrapper.standard.set((user?.uid)!,forKey: "uid")

我正在关注最新版Swift 4的YouTube教程。但是,看起来这行代码存在一些问题,因此我想知道整个代码中的问题,我是否错过了支架或无法导入。

import UIKit
import Firebase
import FirebaseAuth
import FirebaseDatabase
import FirebaseCore
import SwiftKeychainWrapper
import FirebaseStorage

class ViewController: UIViewController {

    @IBOutlet weak var usernameField: UITextField!    
    @IBOutlet weak var emailField: UITextField!
    @IBOutlet weak var passwordField: UITextField!
    @IBOutlet weak var userimageview: UIImageView!

    var imagePicker: UIImagePickerController!
    var selectedImage = UIImage()

    override func viewDidLoad() {
        super.viewDidLoad()

        imagePicker = UIImagePickerController()
        imagePicker.allowsEditing = true
        imagePicker.delegate = self    
    }

    override func viewDidAppear(_ animated: Bool) {
        if KeychainWrapper.standard.object(forKey: "KEY_UID") != nil {
            self.performSegue(withIdentifier: "toFeed", sender: nil)
        }
    }

    func storeuserdata(userId: String) {
        if let imageData = UIImageJPEGRepresentation(selectedImage, 0.2) {
            Storage.storage().reference().putData(imageData, metadata: nil) { (metadata, error) in
                guard let metadata = metadata else {
                    // Uh-oh, an error occurred!
                    return
                }
                // Metadata contains file metadata such as size, content-type, and download URL.
                let downloadURL = metadata.downloadURL
                Database.database().reference().child("users").child(userId).setValue(["username": self.usernameField.text!,"userImg": downloadURL

                ])
            }   
        }
    }

    @IBAction func signinpressed(_ sender: Any) {
        if let email = emailField.text, let password = passwordField.text {
        Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
            if error != nil && (self.usernameField.text?.isEmpty)! && self.userimageview.image != nil {
                Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
                    self.storeuserdata(userId: (user?.uid)!)

                    KeychainWrapper.standard.set((user?.uid)!,forKey: "uid")
                    self.performSegue(withIdentifier: "toFeed", sender: nil)
                }
            }else {
                KeychainWrapper.standard.set((user?.uid)!,forKey: "uid")
                self.performSegue(withIdentifier: "toFeed", sender: nil)
                }            
            }
        }    
    }

    @IBAction func getPhoto (_ sender: AnyObject) {
        present(imagePicker, animated: true, completion: nil)
    }
}

extension ViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate{
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        if let image = info[UIImagePickerControllerEditedImage] as? UIImage {
            selectedImage = image
        }
        imagePicker.dismiss(animated: true, completion: nil)
    }
}

0 个答案:

没有答案