Bir sınıfı değişken olarak saklamak istiyorum, böylece sınıf yöntemlerini bunun dışında daha sonra arayabilirim:Parametre olarak bir Swift sınıfını geçirin ve daha sonra bir sınıf yöntemini çağırın
ne olduğunu anlamaya çalışıyorum olduğunulet someGenericItem = SomeGenericItem(cellClass: SomeClass.self)
someGenericItem.doSomething("One", p2: "Two", p3: "Three")
:
1) bir protokol böylece tanımlanmış olacağını nasıl sınıf fonk doSomething diyebiliriz
class SomeGenericItem: NSObject
{
var cellClass: AnyClass
init(cellClass: AnyClass)
{
self.cellClass = cellClass
}
func doSomething(p1: String, p2: String, p3: String)
{
self.cellClass.doSomething(p1, p2: p2, p3: p3)
}
}
class SomeClass: NSObject
{
class func doSomething(p1: String, p2: String, p3: String)
{
...
}
}
bir şey gibi söylemek mümkün istiyorum ?
2) CellClass'ın beyanı ne olmalı?
3) Görüşme nasıl görünürdü?
umarım bu işe buluyor ama garip bir sorunla ediyorum. Bunu sadece FooProtocol "fooishTypeWrapper = FooTypeWrapper (type: FooishClass.self)" ile aynı dosyada çalışıyorsa çalışabilirim. Farklı bir dosyadaysa, Swift "FooishClass: FooProtocol" sınıfının "Tip 'Aptal Sınıfı' 'protokolü' Foo Protocol 'protokolüne uymadığını söyler. Tek fark, protokolün hangi dosyada olduğudır. Bu, bu yaklaşımı bir seferde çalışmamı sağladı, ancak birden fazla dosyada kullanmayı denediğimde, derleyemem. Herhangi bir fikir? –
Sadece iki kez kontrol ettim, kesinlikle iyi çalışıyor. Muhtemelen bir yerlerde yazım hatası var - sorun devam ederse kodunuzu gönderin. – Gregzo
"Protokoller sınıf yöntemlerini tanımlayamıyor" Bu doğru değil. Protokoller, "statik" ile * tip yöntem gereksinimleri * bildirir. Yazma yöntemi gereksinimleri, sınıf yöntemleri veya statik yöntemler kullanılarak sınıflara göre sağlanabilir. – newacct