2016-03-22 14 views
0

Tablo görünümü çağrısında belirli hücreleri döndürmek için mantığı uyguluyorum. Bir anahtar ifadesi kullanıyorum, "varsayılan" vakanın kapsamı için hangi öneriler var? TableView (_: cellForRowAtIndexPath) içinde oluşmayacak durumları işleme -> UITableViewCell

  • hiç anahtarını kullanarak değil, ama bir geçiş için daha yapısal olarak uygun görünüyor: Ben kabul ettik yaklaşımlar arasında

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
        switch indexPath.section { 
        case 0: // CompanyDetailsGeneralTableViewCell 
         let cell = tableView.dequeueReusableCellWithIdentifier("CompanyDetailsGeneral", forIndexPath: indexPath) as! CompanyDetailsGeneralTableViewCell 
    
         // STUFF FOR CompanyDetailsGeneralTableViewCell 
    
         return cell 
        case 1: 
         let cell = tableView.dequeueReusableCellWithIdentifier("CompanyResources", forIndexPath: indexPath) as! CompanyResourcesTableViewCell 
    
         return cell 
        default: 
         // Can't reach here (never!) as table has only 2 sections. 
         return UITableViewCell() // Hack. BEST PRACTICE? 
        } 
    } 
    

    :

    burada örneğe bakın.

  • Çalışma zamanı istisnası atma. Swift'de çalışma zamanı istisnaları heyecan verici olmadığından mümkün değil.
  • dönen nil - Bunu yapamazsınız, çünkü bu işlev isteğe bağlı olarak geri dönmez.

Yorumlar ve görüşleriniz için teşekkür ederiz.

cevap

2

Bu senaryodaki uygulamayı sonlandırmak için assertionFailure(), preconditionFailure() veya fatalError("Unexpected section in TableView") gibi sonlandırma işlevlerini aramanız gerekir.

+0

Teşekkür ederiz! fatalError ("Tablo Görünümünde" Beklenmeyen bölüm \\ (indexPath.section) ") dır. –

0

Yaptığınız aynı şeyi yapıyorum. Hiçbir şey göstermeyebilir, ancak en azından kullanıcılar için önemli olan uygulama çökmez.

İlgili konular