জেনারিক এনএসআরাইগুলি সাবক্লাসিংয়ের মাধ্যমে উপলব্ধ করা যেতে পারে NSArray
, এবং আরও সীমাবদ্ধতার সাথে সমস্ত সরবরাহিত পদ্ধতি পুনরায় সংজ্ঞায়িত করে। উদাহরণ স্বরূপ,
- (id)objectAtIndex:(NSUInteger)index
নতুন সংজ্ঞা দিতে হবে
@interface NSStringArray : NSArray
যেমন
- (NSString *)objectAtIndex:(NSUInteger)index
কোনও এনএসআর্রে কেবল এনএসএসআর্টিংগুলি অন্তর্ভুক্ত রাখতে।
তৈরি সাবক্লাসটি ড্রপ-ইন প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে এবং অনেক দরকারী বৈশিষ্ট্য নিয়ে আসে: সংকলক সতর্কতা, সম্পত্তি অ্যাক্সেস, আরও ভাল কোড তৈরি এবং এক্সকোডে কমপ্লেশন। এই সমস্ত সংকলন-সময় বৈশিষ্ট্য, আসল বাস্তবায়ন নতুন করে সংজ্ঞায়িত করার প্রয়োজন নেই - এনএসআরির পদ্ধতিগুলি এখনও ব্যবহার করা যেতে পারে।
এটি স্বয়ংক্রিয়ভাবে চালানো এবং এটি কেবলমাত্র দুটি বিবৃতিতে ফোটানো সম্ভব, এটি জেনেরিকগুলিকে সমর্থন করে এমন ভাষার কাছে এনে দেয়। আমি ডাব্লুএমজিইনারিক কালেকশন সহ একটি অটোমেশন তৈরি করেছি , যেখানে টেমপ্লেটগুলি সি প্রিপ্রসেসর ম্যাক্রো হিসাবে সরবরাহ করা হয়।
ম্যাক্রোযুক্ত শিরোলেখ ফাইলটি আমদানির পরে, আপনি দুটি বয়ান সহ একটি জেনেরিক এনএসআরারি তৈরি করতে পারেন: একটি ইন্টারফেসের জন্য এবং একটি বাস্তবায়নের জন্য। আপনি কেবলমাত্র আপনার সাবক্লাসের জন্য সংরক্ষণ করতে চান এমন ডেটা টাইপ এবং নাম সরবরাহ করতে হবে। ডাব্লুএমজেনেরিক্যালক্ল্যাশন NSArray
, NSDictionary
এবং NSSet
পাশাপাশি তাদের পারস্পরিক পরিবর্তনীয় অংশগুলির জন্য এই জাতীয় টেমপ্লেট সরবরাহ করে ।
একটি উদাহরণ: List<int>
কাস্টম নামে পরিচিত একটি ক্লাস দ্বারা উপলব্ধি করা যেতে পারে NumberArray
, যা নিম্নলিখিত বিবৃতি দিয়ে তৈরি করা হয়েছে:
WMGENERICARRAY_INTERFACE(NSNumber *, // type of the value class
// generated class names
NumberArray, MutableNumberArray)
একবার আপনি তৈরি করার পরে NumberArray
, আপনি এটি আপনার প্রকল্পের যে কোনও জায়গায় ব্যবহার করতে পারেন। এর সিনট্যাক্সের অভাব রয়েছে তবে <int>
এগুলি ক্লাস হিসাবে টেমপ্লেট হিসাবে লেবেল করতে আপনি নিজের নামকরণ প্রকল্পটি চয়ন করতে পারেন।