নিম্নলিখিত পদ্ধতিটি বিবেচনা করুন
- (void)methodWithArg:(NSString *)arg1 andArg:(NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler;
নতুন nonnullএবং nullable টীকাগুলির কীওয়ার্ডগুলির সাহায্যে আমরা এটি নীচে সমৃদ্ধ করতে পারি:
- (void)methodWithArg:(nonnull NSString *)arg1 andArg:(nullable NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler;
তবে আমরা এই সতর্কতাটিও পেয়েছি:
পয়েন্টারটি একটি অযোগ্যতা ধরণের স্পেসিফায়ার (__nnull বা __nullable) অনুপস্থিত
এটি তৃতীয় প্যারামিটার (ব্লক এক) বোঝায়।
ডকুমেন্টেশন ব্লক প্যারামিটার nullability নির্দিষ্ট করতে কিভাবে উদাহরণ কাভার করে না। এটি ভারব্যাটিকাম বলে
আপনি খালি প্যারেনসেসিসের অবিলম্বে অ-আন্ডারকর্ডেড ফর্মগুলি nullable এবং nonnull ব্যবহার করতে পারবেন, যতক্ষণ না টাইপটি কোনও সাধারণ অবজেক্ট বা ব্লক পয়েন্টার।
আমি কোনও ভাগ্য ছাড়াই ব্লকের (যে কোনও অবস্থাতে) দুটি কীওয়ার্ডের একটি রাখার চেষ্টা করেছি। আন্ডারস্কোর প্রিফিক্সড ভেরিয়েন্টগুলি ( __nonnullএবং __nullable) চেষ্টা করে দেখুন ।
সুতরাং আমার প্রশ্ন হ'ল: আমি কীভাবে ব্লক পরামিতিগুলির জন্য nlalability শব্দার্থবিজ্ঞান নির্দিষ্ট করতে পারি?
NSError **টাইপটি কীভাবে কাজ করে ? সংকলকটিকে আমি খুশি মনে করতে পারি না।