2015-02-17 14 views
30

Sınıf + uzantı hızlı dosyam var. Klasöre başka bir dosyada bildirdiğim bir temsilci ekledikten sonra, Xcode "Bildiri yalnızca uzantı satırında dosya kapsamı için geçerli" gösterir. Problemin ne olduğunu bilmiyorum.Hakkında "Bildiri yalnızca dosya kapsamında geçerlidir"

Düzeltmek için bana yardımcı olan var mı?

class ListViewController: UIViewController, AddItemViewControllerDelegate {...} 

extension ListViewController: UITableViewDataSource{ 
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     tableView.deselectRowAtIndexPath(indexPath, animated: true) 
     performSegueWithIdentifier("ShowDetail", sender: indexPath) 
    } 

} 
+0

Bu hatayı üreten kodu gösterebilir misiniz? –

+0

@ 0x7fffffff ♦ evet emin olun – Dennis

+2

tam durumda, sizin uzantınızın sınıfınızın DIŞINDAN EMİN OLMADIĞINDAN emin olun! :) – jomafer

cevap

66

hata bir yerlerde senin ... - o hata ListViewController sınıf kapalı alamadım anlamına gelir, bu yüzden içine yuvalanmış olarak uzatma böyle, yorumlanır ediliyor:

class ListViewController { 
    ... 
    extension ListViewController { 
    } 
} 

bul Kapanış ayracı eksik ve sorunu çözmelisiniz.

+0

Yanıt verdiğiniz için teşekkür ederiz. Kodumu iki kez kontrol ettim, sınıf kesin olarak kapandı. Yoksa uyum protokolü meselesi mi? – Dennis

+0

Oh, doğru - belki de hata mesajı sadece kötüdür. Bu yöntem aslında "UITableViewDelegate" 'e ait. 'UITableViewDataSource' ile uyumlu olmak istiyorsanız, en azından 'tableView: numberOfRowsInSection: 've' tableView: cellForRowAtIndexPath: 'öğesine ihtiyacınız vardır. –

+0

Teşekkürler! İyi çalışıyor. – Raja

12

uzatma

 class ListViewController: UIViewController, AddItemViewControllerDelegate { 
//Make sure that everything is clean here! 
} 

    extension ListViewController: UITableViewDataSource{ 
     func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
      tableView.deselectRowAtIndexPath(indexPath, animated: true) 
      performSegueWithIdentifier("ShowDetail", sender: indexPath) 
     } 

    } 
10

uzatma kök düzeyinde olmalı "}" ana sınıfın sonunda ve son küme parantezleri sonra ilan emin olun - bir içine gömmek yok sınıf ya da her neyse.

İlgili konular