2015-09-20 19 views
5

Ben hızlı bir şekilde jenerikler öğreniyorum. Ve neyin yanlış gittiğini anlamıyorum.Genel hızlı IOS "kod derleme hatası" altyazı değil

Herkes, lütfen başka bir şablona nasıl genel şablon ekleyebilirim açıklayınız.

sınıf bildiride *UPD*

+0

Neden olarak sunum ilan etmişlerdir gibi- şey bir dizi? Herhangi bir sebep var mı? Var sunumcu istediğin gibi görünüyor: PRESENTER? – Shripada

+0

@Shripada, yanıt için teşekkürler. Evet, benim hatam. Tek bir nesne olarak yapılmış. Ama sorunu çözmezsiniz –

+0

Sorunuzu doğru ekran görüntüsü ile güncelleyebilir misiniz? Ekran görüntüsü hala yanlış kod gösteriyor – Shripada

cevap

0

, sanki tip tanıtmak, yani SUNUCU: BasePresenter sınıf resme aşağıda hatasıyla

class BasePresenter<VIEW : BaseView>{ 

Kanunu benziyor

Beyanı arasında , istenmeyen. Emin değilim, neden bu kısmi tip bildirimi derleyici izin veriyor ve bu tür kısmi tip kullanarak değişken oluşturmaya çalıştığınızda daha sonra doğru bir hata verir. Şimdilik geçici çözüm bu tür önlemek ve doğrudan sunucu değişken bildirmek tip BasePresenter olması ya da bir tür takma kullanarak SUNUCU tipini temsil etmektir:

class BaseViewController <VIEW: BaseView> : UIViewController, BaseView{ 

typealias PRESENTER = BasePresenter<VIEW>! 
var presenter : PRESENTER! 

//Rest of the class body... 
} 
+1

Cevabınız için teşekkürler. Ama 'BaseViewController' ineri 'değişken sunumda' BasePresenter' inrasimcisine sahip olmalıdır. Nasıl yapabilirim? –

+0

Neden bunu yapmak istersiniz? Sunucuyu, BasePresenter'ın herhangi bir alt türüne atayabilirsiniz. – Shripada

+1

@Shripada Bu nedenle, bu varyantı 'PRESENTER' uygulaması olarak kullanabiliriz ve 'BasePresenter' öğesini 'BasePress' 'bir alt sınıfında 'PRESENTER' 'a çevirmeden doğrudan yöntemlerini çağırabiliriz. – shelll