Ayrıca bu sorunu yaşadım ve durumum için bir geçici çözüm buldum.
Bu yazıda yazarın aynı sorunu var
https://www.iphonelife.com/blog/31369/swift-programming-101-generics-practical-guide
Öyleyse sorun şu ki, derleyicinin bir şekilde T tipini çıkarması gerekiyor. Ancak genel <tür> (parametreler ...) kullanımına izin verilmez.
Normalde, derleyici parametre türlerini tarayarak T tipini arayabilir çünkü çoğu durumda T burada kullanılır.
Benim durumumda biraz farklıydı, çünkü fonksiyonumun dönüş tipi T idi. Sizin durumunuzda, T'yi fonksiyonunuzda hiç kullanmamışsınız gibi görünüyor. Sanırım örnek kodu basitleştirdiniz.
Bu yüzden aşağıdaki işleve sahibim
func getProperty<T>( propertyID : String ) -> T
Ve örneğin olması durumunda
getProperty<Int>("countProperty")
derleyici bana şu hatayı veriyor:
Genel bir işlevi açıkça özelleştiremezsiniz
Bu nedenle, derleyiciye T'nin türünü çıkarması için başka bir bilgi kaynağı vermek için, dönüş değerinin kaydedildiği değişkenin türünü açıkça belirtmeniz gerekir.
var value : Int = getProperty("countProperty")
Bu şekilde derleyici T'nin bir tamsayı olması gerektiğini bilir.
Dolayısıyla genel olarak bunun basitçe, genel bir fonksiyon belirtirseniz, parametre türlerinizde veya dönüş türü olarak en azından T kullanmanız gerektiği anlamına geldiğini düşünüyorum.