एक वर्ग को प्रोटोकॉल के अनुरूप होने से पहले एक मूल वर्ग से विरासत में प्राप्त करना होता है। इसे करने के मुख्यतः दो तरीके हैं।
एक तरीका यह है कि आपकी कक्षा NSObject
को एक UITableViewDataSource
साथ विरासत में मिला है और एक साथ होना चाहिए। अब यदि आप प्रोटोकॉल में फ़ंक्शन को संशोधित करना चाहते हैं, तो आपको override
फ़ंक्शन कॉल से पहले कीवर्ड जोड़ना होगा , इस तरह
class CustomDataSource : NSObject, UITableViewDataSource {
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
// Configure the cell...
return cell
}
}
हालाँकि यह कभी-कभी आपके कोड को गड़बड़ कर देता है क्योंकि आपके पास इसके अनुरूप कई प्रोटोकॉल हो सकते हैं और प्रत्येक प्रोटोकॉल में कई प्रतिनिधि कार्य हो सकते हैं। इस स्थिति में, आप उपयोग करके प्रोटोकॉल अनुरूप कोड को मुख्य वर्ग से अलग कर सकते हैं extension
, और आपको override
एक्सटेंशन में कीवर्ड जोड़ने की आवश्यकता नहीं है । तो ऊपर दिए गए कोड के बराबर होगा
class CustomDataSource : NSObject{
// Configure the object...
}
extension CustomDataSource: UITableViewDataSource {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
// Configure the cell...
return cell
}
}