【问题标题】:Button to upload integer to Firebase database IOS将整数上传到 Firebase 数据库 IOS 的按钮
【发布时间】:2017-04-14 16:14:15
【问题描述】:

按下按钮时,我需要将项目的评分保存在数据库中。虽然我的滑块有效并且我的变量“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)**

    }

}

【问题讨论】:

    标签: ios swift database firebase


    【解决方案1】:

    虽然我无法在不查看更多项目的情况下为您提供解决此问题的确切答案,但我可以提出一些建议。

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

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

    @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 的数据、您的插座还是您的应用程序逻辑。

    希望对您有所帮助。

    【讨论】:

    • 非常感谢。我仍在努力,但希望它会奏效。
    猜你喜欢
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 2019-06-07
    • 2018-11-08
    • 2021-01-31
    • 2020-08-27
    • 1970-01-01
    • 2017-10-19
    相关资源
    最近更新 更多