मुझे भी यह समस्या थी और मुझे अपने केस के लिए वर्कअराउंड मिला।
इस लेख में लेखक की भी यही समस्या है
https://www.iphonelife.com/blog/31369/swift-programming-101-generics-practical-guide
तो समस्या यह है, लगता है कि संकलक को किसी भी तरह टी के प्रकार की आवश्यकता है। लेकिन इसे केवल जेनेरिक <प्रकार> (params ...) का उपयोग करने की अनुमति नहीं है।
आम तौर पर, कंपाइलर T के प्रकार को पैरामीटर प्रकारों को स्कैन करके देख सकता है क्योंकि यह वह जगह है जहां टी का उपयोग कई मामलों में किया जाता है।
मेरे मामले में यह थोड़ा अलग था, क्योंकि मेरे फ़ंक्शन का रिटर्न प्रकार T था। आपके मामले में ऐसा लगता है कि आपने अपने फ़ंक्शन में T का उपयोग बिल्कुल नहीं किया है। मुझे लगता है कि आपने उदाहरण कोड को सरल बनाया है।
इसलिए मेरे पास निम्नलिखित कार्य हैं
func getProperty<T>( propertyID : String ) -> T
और उदाहरण के लिए
getProperty<Int>("countProperty")
संकलक मुझे त्रुटि देता है:
स्पष्ट रूप से एक सामान्य कार्य का विशेषज्ञ नहीं हो सकता
इसलिए, कंपाइलर को T के प्रकार का पता लगाने के लिए जानकारी का एक और स्रोत देने के लिए, आपको स्पष्ट रूप से घोषित करना होगा कि रिटर्न वैल्यू किस प्रकार के वेरिएबल में सेव की गई है।
var value : Int = getProperty("countProperty")
इस तरह संकलक जानता है कि टी को पूर्णांक बनना है।
तो मुझे लगता है कि कुल मिलाकर इसका सीधा सा मतलब है कि यदि आप एक सामान्य फ़ंक्शन को निर्दिष्ट करते हैं, तो आपको अपने पैरामीटर प्रकारों में या वापसी प्रकार के रूप में कम से कम टी का उपयोग करना होगा।