gpt4 book ai didi

swift - 在 swift 2 中从 firebase 调用子进程时出现错误的指令错误

转载 作者:行者123 更新时间:2023-11-30 12:27:54 25 4
gpt4 key购买 nike

我们正在尝试访问数据库中的子项,但是我们正在使用由 segue 引入的先前 View 中的字符串。它不断给出错误指令的错误。仅在模拟器中运行后出现。我们正在寻找错误的解决方案。谢谢!

来自先前 View 的函数,带有字符串:

    }
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let controller = segue.destinationViewController as! SorDViewController
if segue.identifier == "secondScreen" {
controller.textToDisplay = nameField.text
}
}

用于访问数据并将其上传到 firebase 的代码(错误仅出现在第一个函数中):

 import Foundation
import UIKit
import Firebase
import FirebaseDatabase

class SorDViewController: UIViewController {

var textToDisplay: String?

@IBAction func postData(sender: AnyObject) {
let ref = FIRDatabase.database().referenceFromURL("database URL")
ref.child(textToDisplay!).child("Type").setValue("Singles")
}

@IBAction func postData2(sender: AnyObject) {
let ref = FIRDatabase.database().referenceFromURL("database URL")
ref.child("Type").setValue("Doubles")
}

}

最佳答案

作为快速测试,请尝试更改您的 prepareForSegue 方法:

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let controller = segue.destinationViewController as! SorDViewController
if segue.identifier == "secondScreen" {
controller.textToDisplay = nameField.text
}
}

对此:

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let controller = segue.destinationViewController as! SorDViewController
print("=> nameField: \(nameField.text)")
controller.textToDisplay = nameField.text
}

请仔细检查您的 nameField.text 中是否确实有一个非零值:)

跟踪 textToDisplay 的更改也是一个好主意,如下所示:

var textToDisplay: String? {
didSet {
print("oldValue: \(oldValue), newValue: \(textToDisplay)")
}
}

关于swift - 在 swift 2 中从 firebase 调用子进程时出现错误的指令错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43944079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com