2016-01-23 30 views
0

追加数组我有与追加数组一个问题,你可以看到我的代码,我通过检查问题的路线并留空。 这里是我的代码:通过SWIFT 2

// 
// ViewController.swift 
// firer 
// 
// Created by mike matta on 06/01/2016. 
// Copyright © 2016 Mikha Matta. All rights reserved. 
// 

import UIKit 
import Firebase 

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

    @IBOutlet weak var showdatA: UILabel! 
    @IBOutlet weak var tableView: UITableView! 
    var items:[String] = [] 
    var userFNAME:String = "" 
    var userDOB:String = "" 
    let textCellIdentifier = "TextCell" 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     tableView.delegate = self 
     tableView.dataSource = self 
     // Do any additional setup after loading the view, typically from a nib. 
     /////////// 
     let UsersChannel = Firebase(url: "https://MYFIREBASE.firebaseio.com/users") 

      UsersChannel.observeEventType(.ChildAdded, withBlock: { snapshot in 


       if let az = String?((snapshot.value.objectForKey("full_name"))! as! String) { 

        self.userFNAME = az 

       } 
       if let az2 = String?((snapshot.value.objectForKey("dob"))! as! String) { 

        self.userDOB = az2 
       } 

       print("\(self.userFNAME) - \(self.userDOB)") 
       self.items.append(self.userFNAME) // heeereeee what i am trying to doooooooo 


      }) 

     // print(self.items) 





    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     return 1 
    } 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return items.count 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as UITableViewCell 

     let row = indexPath.row 
     cell.textLabel?.text = items[row] 

     return cell 
    } 

    // MARK: UITableViewDelegate Methods 
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     tableView.deselectRowAtIndexPath(indexPath, animated: true) 

     let row = indexPath.row 
     print(items[row]) 
    } 


} 

我tryed把数组定义的viewDidLoad中(),它的工作原理里面...但我需要它外面(像我的代码)..
我tryed把异步块之外的数组也是......仍然不会追加
....任何一个?

+0

是你追加行到实际上被调用的数组? –

+0

@Techprimate这一行工作正常:print(“\(self.userFNAME) - \(self.userDOB)”) –

回答

0

我认为你的代码有效! 现在的问题是: 你为什么认为你的数组仍然是空的? 您必须考虑执行指令的顺序。 在这一行:

// print(self.items);

你的阵列仍然是空的,因为封闭尚未调用。 把这条线放在append后面,你会看到。

而且,只需添加self.tableView.reloadData()您的追加后,你会很高兴:) (它会说你的tableview召回委托方法(numberOfRowsInSection ...))

+0

太棒了!有用 !!!谢谢 :) !! –