【问题标题】:Firebase adding data to Array but still emptyFirebase将数据添加到数组但仍然为空
【发布时间】:2016-03-11 03:28:27
【问题描述】:

As you can see here

import UIKit

class Connecting {

let refHandler = Firebase(url: "https://-unique-link-.firebaseio.com/handlers")

var handlerID: [AnyObject] = []

func getHandlerStatus() {
        refHandler.queryOrderedByChild("status").observeEventType(.ChildAdded, withBlock: { snapshot in
            if let status = snapshot.value["status"] as? Int {
                if status == 0 {
                    self.handlerID.append(snapshot.key)
                    print(self.handlerID)
                } else {
                    //Do Nothing
                }
            }
        })
}

func handlerIDReturn() -> NSArray {
    print(handlerID)
    return handlerID
}

}

handlerID 数组已填充,但当我检查时,它是空的。 :( 请帮忙 我已经更新了所有代码。

这是一个调用代码。我使用按钮调用每个基金

@IBAction func callerButton(sender: AnyObject) {
    Connecting().getHandlerStatus()
}
@IBAction func button2nd(sender: AnyObject) {
    print(Connecting().handlerIDReturn())
}

【问题讨论】:

  • 您的handlerIDReturn 代码何时运行?您的块将在后台线程上运行,所以也许您在它完成之前调用了handlerIDReturn
  • 不,先生。我只在上述函数将数据添加到数组后才调用 handlerIDReturn。当“print(self.handlerID)”显示数据时。我等待大约 5 秒,然后调用 handlerIDReturn()。
  • 能否包含周边代码?您确定要在同一个对象实例上调用这两种方法吗?
  • 我已复制所有代码并粘贴。我迷路了。
  • 调用这些方法的代码呢?

标签: ios swift firebase


【解决方案1】:

您只需要创建一个Connecting 实例并使用它。目前,每次调用Connecting() 都会给你一个新对象。

let connecting = Connecting()

@IBAction func callerButton(sender: AnyObject) {
    connecting.getHandlerStatus()
}
@IBAction func button2nd(sender: AnyObject) {
    print(connecting.handlerIDReturn())
}

【讨论】:

    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 2021-10-17
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    相关资源
    最近更新 更多