NS_UNAVAILABLE
- (instancetype)init NS_UNAVAILABLE;
এটি অনুপলব্ধ বৈশিষ্ট্যের একটি সংক্ষিপ্ত সংস্করণ। এটি প্রথম ম্যাকোস 10.7 এবং আইওএস 5 এ উপস্থিত হয়েছিল । এটি NSObjCRuntime.h হিসাবে সংজ্ঞায়িত করা হয়েছে #define NS_UNAVAILABLE UNAVAILABLE_ATTRIBUTE
।
একটি সংস্করণ রয়েছে যা কেবল সুইফ্ট ক্লায়েন্টদের জন্য পদ্ধতিটি অক্ষম করে , ওবজিসি কোডের জন্য নয়:
- (instancetype)init NS_SWIFT_UNAVAILABLE;
unavailable
কোনও কলটিতে কোনও সংকলনে ত্রুটিunavailable
উত্পন্ন করতে শিরোলেখটিতে বৈশিষ্ট্য যুক্ত করুন ।
-(instancetype) init __attribute__((unavailable("init not available")));
আপনার যদি কোনও কারণ না থাকে তবে কেবল টাইপ করুন __attribute__((unavailable))
বা এমনকি __unavailable
:
-(instancetype) __unavailable init;
doesNotRecognizeSelector:
doesNotRecognizeSelector:
একটি এনএসআইএনওডিয়ালআরগমেন্টএক্সসেপশন বাড়াতে ব্যবহার করুন । "রানটাইম সিস্টেমটি এই পদ্ধতিটি আহ্বান করে যখনই কোনও বস্তু কোনও নির্বাচিত বার্তা গ্রহণ করে তবে তা প্রতিক্রিয়া জানাতে বা প্রেরণ করতে পারে না।"
- (instancetype) init {
[self release];
[super doesNotRecognizeSelector:_cmd];
return nil;
}
NSAssert
NSAssert
NSInternInconsistencyException নিক্ষেপ করতে এবং একটি বার্তা দেখানোর জন্য ব্যবহার করুন :
- (instancetype) init {
[self release];
NSAssert(false,@"unavailable, use initWithBlah: instead");
return nil;
}
raise:format:
raise:format:
আপনার নিজস্ব ব্যতিক্রম নিক্ষেপ করতে ব্যবহার করুন :
- (instancetype) init {
[self release];
[NSException raise:NSGenericException
format:@"Disabled. Use +[[%@ alloc] %@] instead",
NSStringFromClass([self class]),
NSStringFromSelector(@selector(initWithStateDictionary:))];
return nil;
}
[self release]
প্রয়োজনীয় কারণ বস্তুটি ইতিমধ্যে নষ্ট হয়ে গেছে alloc
। আরসি ব্যবহার করার সময় সংকলকটি এটি আপনার জন্য কল করবে। যাই হোক না কেন, আপনি যখন ইচ্ছাকৃতভাবে মৃত্যুদন্ড কার্যকর করতে চলেছেন তখন উদ্বিগ্ন হওয়ার কিছু নেই।
objc_designated_initializer
যদি আপনি init
কোনও মনোনীত প্রাথমিকের ব্যবহারটি জোর করে অক্ষম করতে চান , তবে এর জন্য একটি বৈশিষ্ট্য রয়েছে:
-(instancetype)myOwnInit NS_DESIGNATED_INITIALIZER;
অন্য কোনও আরম্ভকারী পদ্ধতি myOwnInit
অভ্যন্তরীণভাবে কল না করা হলে এটি একটি সতর্কতা উত্পন্ন করে । পরবর্তী এক্সকোড প্রকাশের পরে ( আধুনিক ধারণা) মডার্ন অবজেক্টিভ-সি অ্যাডাপ্টিংয়ে বিশদ প্রকাশিত হবে I
NS_UNAVAILABLE
। আমি আপনাকে সাধারণত এই পদ্ধতির ব্যবহার করার জন্য অনুরোধ করব। ওপি তাদের গৃহীত উত্তরগুলির সংশোধন বিবেচনা করবে? এখানে অন্যান্য উত্তরগুলি প্রচুর দরকারী বিশদ সরবরাহ করে তবে এটি অর্জনের পছন্দসই পদ্ধতি নয়।