আমি এমন একটি শ্রেণি তৈরি করতে চাই যা নির্দিষ্ট প্রোটোকলের সাথে সঙ্গতিপূর্ণ অবজেক্টগুলিকে সঞ্চয় করতে পারে। বস্তুগুলি একটি টাইপযুক্ত অ্যারেতে সংরক্ষণ করা উচিত। সুইফ্ট ডকুমেন্টেশন অনুযায়ী প্রোটোকল প্রকার হিসাবে ব্যবহার করা যেতে পারে:
কারণ এটি একটি প্রকার, আপনি এমন অনেক জায়গায় প্রোটোকল ব্যবহার করতে পারেন যেখানে অন্যান্য ধরণের অনুমতি রয়েছে, সহ:
- কোনও ফাংশন, পদ্ধতি বা ইনিশিয়ালাইজারে প্যারামিটারের ধরন বা রিটার্নের ধরণ হিসাবে
- ধ্রুবক, পরিবর্তনশীল বা সম্পত্তির ধরণ হিসাবে
- অ্যারে, অভিধান বা অন্য ধারকটিতে আইটেমের ধরণ হিসাবে
তবে নিম্নলিখিতটি সংকলক ত্রুটিগুলি উত্পন্ন করে:
প্রোটোকল 'সোমপ্রোটোকল' কেবল জেনেরিক সীমাবদ্ধতা হিসাবে ব্যবহার করা যেতে পারে কারণ এতে স্ব বা সম্পর্কিত সম্পর্কিত প্রয়োজনীয়তা রয়েছে
আপনি কীভাবে এটি সমাধান করবেন?
protocol SomeProtocol: Equatable {
func bla()
}
class SomeClass {
var protocols = [SomeProtocol]()
func addElement(element: SomeProtocol) {
self.protocols.append(element)
}
func removeElement(element: SomeProtocol) {
if let index = find(self.protocols, element) {
self.protocols.removeAtIndex(index)
}
}
}