मैं एक क्लास फ़ंक्शन लिखना चाहता हूं, जो कक्षा प्रकार की एक सरणी वापस कर देगा। जहां तक मैं समझ गया, मैं उद्देश्य-सी "इंस्टेंस टाइप" के लिए "सेल्फ" का उपयोग कर सकता हूं। मेरा लक्ष्य एक fetchObjects विधि के साथ एक NSManagedObject के लिए एक एक्सटेंशन बनाना है। यह विधि NSManagedObject उप-वर्गों की एक सरणी वापस करने की तुलना में होगी।स्विफ्ट: प्रकार के आरे का प्रकार स्वयं
extension NSManagedObject {
class func fetchObjects(entity: String, context: NSManagedObjectContext, predicate: NSPredicate?, sortDescriptors: NSSortDescriptor[]?) -> Self[] {
// can't define return type of an array with type Self
// also var declaration does not work
var objects : Self[]?
return objects
}
}
किसी भी विचार कैसे मैं प्रकार स्व की एक सरणी को परिभाषित कर सकते हैं: यहाँ मेरी छद्म कोड का एक उदाहरण है जो संकलन नहीं करता है?
किसी भी मदद के लिए धन्यवाद!
आप इस तरह के फ़ंक्शन को पैरामीटर कर सकते हैं: 'क्लास फंड fetchObjects (...) -> स्वयं []?' लेकिन मुझे नहीं लगता कि आप ओबीजेसी से स्विफ्ट तक ब्रिजिंग जेनरेट कर सकते हैं, जैसे कि कंपाइलर कर सकता है गारंटी है कि प्रत्येक एनएसएमएनेज ऑब्जेक्ट के लिए एक संबंधित स्विफ्ट ऑब्जेक्ट होने वाला है। हालांकि, यह बहुत अच्छा सवाल होगा। –
Brett
बस स्पष्ट होने के लिए, आप 'सबक्लास' की एक सरणी नहीं ढूंढ रहे हैं, आप ऐसे नामों के साथ उदाहरणों की एक सरणी ढूंढ रहे हैं जो एक नामित सुपरक्लास के उप-वर्ग हैं? – GoZoner
हां, जो मैं प्राप्त करना चाहता हूं, इसलिए यदि मैं इसे एनएसएमएनेज्ड ऑब्जेक्ट सबक्लास पर कॉल करता हूं और यह इस सबक्लास – user966697