Merhabalar, mümkün olduğunca açık anlantmaya çalıcağım.
Farklı tableView'lara bağlı farklı tableCell lerim var bu celler bir birinden farklı classlar olsada ortak method ve özellikler barındırıyorlar.
A Table Cell,B Table Cell, C table Cell
Benim func.swift adında bir class'ım ve bunun içinde cellDerle diye bir methodum var. A Table içinde tableCeller listelenirken.
cellDerle(tableCell.self,data) şeklinde methoda table cell parametre olarak verip.cellDerle method içinde gerekli işlemleri yapıp uye adını, profil resmini, açıklama metni gibi verileri ilgili alanlara dahil edilmesini sağlıyorum.
Sorun şurda başlıyor cellDerle method'u
cellDerle(cell:ATableCell,data:enyobject) şeklinde ben aynı methodu kullanarak BTableCell ' i ve CTableCell ' i de derlemek istiyorum.
cellDerle methodunu generic olarak yazarsam veya cellDerle(cell:UITableCell,data:enyobject) olarak yazarsam method içinde cell altındaki özellik veya elemanlara erişmeye çalıcağımdan hata alıyorum. Çünkü cell parametresini n tipi generic olduğu için o tip altında method ve özelikleri aramaya çalışıp bulamıyor. Çalışma zamanında olsa ona verdiğim parametredeki class çağırlan method ve özelikleri barındırırdı.
Hedeflediğim methodun yapısı aslında aşağıdaki gibi
func cellDerle(cell:UITableCell,data:enyobject){
if aTablecell || bTAbleCell tipindeyse{
cell.uyeID = 10
cell.userImage = imageView
}
if cTableCell Tipindeyse{
//Bu tipteki classların içinde baslik labelide var
cell.baslikLabel = "forum.yasinturkoglu"
}
}
Yapmaya çalıştığım şey yapısal olarak bir saçmalıksa, ne yapıyorsun çocuğum sen derseniz sevinirim :). Değilse böyle bir hiyerarşi oluşturmak için nasıl bir tasarım deseni izlemem gerekir, fikir verebilirseniz çok sevinirim.
Teşekkürler.