objective - swift money transfer login




क्या मुझे एक प्रोटोकॉल में एक init फ़ंक्शन मिल सकता है? (2)

जब मैं अपने प्रोटोकॉल को इस तरह लागू करने की कोशिश करता हूं:

protocol Serialization {
    func init(key keyValue: String, jsonValue: String)
}

मुझे एक त्रुटि मिलती है: फ़ंक्शन घोषणा में अपेक्षित पहचानकर्ता।

क्यों यह त्रुटि आ रही है?


हाँ तुम कर सकते हो। लेकिन आप func के सामने कभी भी func नहीं डालते हैं:

protocol Serialization {
    init(key keyValue: String, jsonValue: String)
}

यहां प्रमुख बिंदु:

  1. प्रोटोकॉल और क्लास जो इसे लागू करता है, उसमें कभी भी init विधि के सामने कीवर्ड func नहीं होता है
  2. आपके वर्ग में, चूंकि init विधि को आपके प्रोटोकॉल में बुलाया गया था, अब आपको required init साथ init विधि को उपसर्ग की required । यह इंगित करता है कि एक प्रोटोकॉल जिसे आप इस init विधि की आवश्यकता के अनुरूप init (भले ही आपने स्वतंत्र रूप से सोचा कि यह एक महान विचार था)।

जैसा कि अन्य लोगों द्वारा कवर किया गया है, आपका प्रोटोकॉल इस प्रकार दिखाई देगा:

protocol Serialization {
    init(key keyValue: String, jsonValue: String)
}

और उदाहरण के तौर पर, एक ऐसा वर्ग जो इस प्रोटोकॉल के अनुरूप होता है, वह ऐसा लग सकता है:

class Person: Serialization {
    required init(key keyValue: String, jsonValue: String) {
       // your logic here
    }
}

init विधि के सामने आवश्यक कीवर्ड की सूचना दें





swift