ritorna nessuna cella in base alla variabile nil

questo è un po 'una continuazione di questa domanda, ma fondamentalmente sto cercando di capire come posso restituire nessuna cella se il risultato di una funzione è nullo.

questo è il mio codice:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("rideCell", forIndexPath: indexPath) as! RideCell

    var ride = DataManager.sharedInstance.getRideByName(favouritesArray[indexPath.row] as! String)
    println(ride)

    if ride != nil {
        cell.rideNameLabel.text = ride!.name

        var dateFormat = NSDateFormatter()
        dateFormat.dateFormat = "h:mm a"
        cell.updatedLabel.text = dateFormat.stringFromDate(ride!.updated!)

        if ride!.waitTime! == "Closed" {
            cell.waitTimeLabel.text = ride!.waitTime!
        } else {
            cell.waitTimeLabel.text = "\(ride!.waitTime!)m"
        }
    }

    return cell
}

così al momento tutto funziona, tuttavia ovunque ride fa pari zero, Ho appena ottenere la cellula prototipo restituito, mentre vorrei che per restituire nulla.

ho provato a nascondere o cambiare l'altezza di queste cellule a zero, ma sembra proprio come soluzione disordinato. chiunque conosce uno migliore?

grazie.


En title : Return no cell based on nil variable

7 Comments:

  1. è necessario restituire una cella per quel metodo. perché non cambia solo il valore restituito dai numeri OfRows?
  2. perché aspettare fino a cellForRowAtIndexPath per decidere se restituire una cella o meno, perché non si procede prima di passare il numero di cellule
  3. @rocky Non posso cambiare i numeri OfRows, perché visualizza le cellule nell'ordine in cui sono stati favoriti. quindi, se avete favorito 4 cose, ma solo due possono essere trovati all'indice 2 e 3, poi cambiando il numero OfRows visualizzerebbe i due vuoti.
  4. si assume che si sa sempre quante righe valide hai e si pubblica questo numero implementando UITableViewDataSource tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int metodo. quindi, se ad un certo momento il numero di righe cambia si dovrebbe chiamare UITableView.reloadData per non cercare di nascondere righe in eccesso.

    per ottenere una serie di corse valide provare qualcosa come:

    var newArray:[String] = []
    for str in favouritesArray where DataManager.sharedInstance.getRideByName(str!) != nil
    {
        newArray += [str]
    }
    
  5. @user3746428 se si dispone di una serie di tutti gli elementi e si desidera visualizzare solo gli elementi favorevolmente, basta fare il lavoro con l'array e poi contare in modo da ottenere il numero corretto di cellule
  6. determinare il numero di righe implementando tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) {
        if section == 0 {
            return arrayName.count
        }
        return 0
    }
    
  7. ho capito una soluzione. come alcune persone citate, ho dovuto capire cosa visualizzare prima di trattare con cellForRowAtIndexPath.

    fondamentalmente ho aggiunto qualche codice per capire quali favoriti si possono trovare nell'array e inserirlo in viewWillAppear.

        for index in 0...favouritesArray.count - 1 {
            var ride = DataManager.sharedInstance.getRideByName(favouritesArray[index] as! String)
    
            if ride != nil {
                favouritesFound.append(ride!.name!)
                println(favouritesFound)
            }
        }
    

    funziona perfettamente ora! grazie a tutti.

More similar articles:

  • nessuna immagine della fotocamera quando l'app ritorna dall'esecuzione in background
  • UISclollView isDraging ritorna YES quando nessuna scrollview è in decelerazione
  • parse PFAnonymousUtils logInWithBlock non ritorna blocco di completamento quando nessuna connessione internet
  • UISearchBar annullare il pulsante nessuna azione
  • UITableView che ritorna da una vista di dettaglio e aggiorna la cella di visualizzazione principale HELP
  • c'è comunque da far sapere ad Excel che quando si apre un file CSV il carrello ritorna all'interno di una cella e non alla fine di una riga?
  • in quali casi una dichiarazione di aggiornamento sql ritorna come nessuna riga aggiornata?
  • non ritorna nessuna pagina facebook access_token in PHP SDK
  • MonoTouch App Crash Quando si ritorna da MFMailComposeViewController
  • AVAudioRecorder averagePowerForChannel ritorna sempre -120.ed.ed.ced.cf.
  • la funzione MySQL ritorna sempre nulla anche se nessuna risposta nulla
  • ritorna la riga della prima cella non vuota
  • ritorna la data corrente quando nessuna data presente in MySQL
  • ritorna stringa vuota per nessuna corrispondenza su DateTime
  • CGRectContainsPoint non ritorna YES ma sul simulatore il punto è nell'immagine
  • chiamata a Bitmap.compress non ritorna - e nessuna eccezione
  • ritorna il primo elemento se nessuna corrispondenza trovata in array
  • Google Map API3 non ritorna nessuna mappa?
  • perché regexp_matches per nessuna riga corrispondente funziona come un filtro, e non ritorna?
  • ritorna invece di niente per il valore dell'attributo che non è disponibile in nessuna collezione
  • ritorna nessuna riga mysql duplicata
  • ritorna un modello e nessuna funzione di corrispondenza per la chiamata
  • giada: ogni val nei tempi ritorna "nessuna funzione del genere: Val"
  • SoundCloud Javascript SDK: come ritorna le tracce SC.get quando non è specificata nessuna specifica libreria/utente/playlist?
  • ritorna falso quando nessuna connessione internet
  • nessuna riga ritorna quando SUM è selezionato con altre colonne
  • uso della funzione di coalescenza quando nessuna riga ritorna
  • nessuna eccezione di questo elemento quando si ritorna al menu principale
  • ritorna vero se mysql aggiorna l'istruzione excute e false quando nessuna riga è stata aggiornata
  • perché dataset.output_deforms ritorna la distensione (nessuna) dopo il dosaggio