প্রোটোকলের সাথে সামঞ্জস্য করার আগে কোনও শ্রেণিকে অভিভাবক শ্রেণীর কাছ থেকে উত্তরাধিকারী হতে হয়। এটি করার প্রধানত দুটি উপায় রয়েছে।
একটি উপায় হ'ল আপনার ক্লাসটি উত্তরাধিকার সূত্রে প্রাপ্ত 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
}
}