2016-01-23 31 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

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