Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.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
将整数上载到Firebase数据库IOS的按钮_Ios_Swift_Database_Firebase - Fatal编程技术网

将整数上载到Firebase数据库IOS的按钮

将整数上载到Firebase数据库IOS的按钮,ios,swift,database,firebase,Ios,Swift,Database,Firebase,当按下按钮时,我需要在数据库中保存项目的评级。虽然我的滑块工作,变量“currentValue”工作,但我无法获得提交到数据库的评级,因为它会使应用程序崩溃。如果我犯了一个简单的错误,一定要让我知道 import UIKit import FBSDKCoreKit import FBSDKLoginKit import FirebaseDatabase class SecondViewController: UIViewController { var ref:FIRDatabaseRefe

当按下按钮时,我需要在数据库中保存项目的评级。虽然我的滑块工作,变量“currentValue”工作,但我无法获得提交到数据库的评级,因为它会使应用程序崩溃。如果我犯了一个简单的错误,一定要让我知道

import UIKit
import FBSDKCoreKit
import FBSDKLoginKit
import FirebaseDatabase

class SecondViewController: UIViewController {

var ref:FIRDatabaseReference!

@IBOutlet weak var sliderLabel: UILabel!


@IBOutlet weak var verticalSlider: UISlider!

       {
            didSet{
                verticalSlider.transform = CGAffineTransform(rotationAngle: CGFloat(-M_PI_2))

            }
    }

@IBAction func verticalSliderChanged(_ sender: UISlider) {

        var currentValue = Int(sender.value);

        sliderLabel?.text = "\(currentValue)"

}


@IBAction func checkmarkButtonPressed(_ sender: Any) {


    let img:UIImageView = UIImageView(frame: CGRect(x: 30, y: 180, width: 250, height: 320))

    let randomImage = arc4random()

    if (randomImage % 4 == 0) {
        img.image = UIImage(named: "hero.jpg")
    } else if (randomImage % 3 == 1) {
        img.image = UIImage(named: "hillary.jpg")
    } else {
        img.image = UIImage(named: "thistimeisdifferent.png")

    **self.ref.child(uuid).child("Book Info").child("Book Title").child("Slider Value").setValue(currentValue)**

    }

}

虽然我不能给你一个确切的答案来解决这个问题,但我可以提出一些建议

首先,确保所有@iboutlet和@IBActions都已连接。如果这些对象和操作未连接,这肯定会导致崩溃。要解决此问题,请注释掉代码并在操作上设置一个断点,然后看看您是否能够与Outlet交互并开始操作

其次,验证代码的执行,以确保使用的是安全的数据。比如说,

@IBAction func verticalSliderChanged(_ sender: UISlider) {
    // This will allow a safer way to interact with you data
    if let currentValue = sender.value as? Int {
        sliderLabel?.text = "\(currentValue)"
    }
}

@IBAction func checkmarkButtonPressed(_ sender: Any) {


    let img:UIImageView = UIImageView(frame: CGRect(x: 30, y: 180, width: 250, height: 320))
    self.view.addSubview(img)

    guard img != nil else {
        return
    }

    let randomImage = arc4random()

    if (randomImage % 4 == 0) {
        img.image = UIImage(named: "hero.jpg")
    } else if (randomImage % 3 == 1) {
        img.image = UIImage(named: "hillary.jpg")
    } else {
        img.image = UIImage(named: "thistimeisdifferent.png")

        guard let currentVal = currentValue, 
              currentVal.characters.count > 0 else {
            return
        }
        self.ref.child(uuid).child("Book Info").child("Book Title").child("Slider Value").setValue(currentVal)

    }
验证每一步处理的数据应允许您确定问题是插入FireBase、插座还是应用程序逻辑的数据


希望能有所帮助。

非常感谢。我仍在努力,但希望它能起作用。