নির্ভুলতা এবং শৈলীর উন্নতিতে দুটি সেন্ট যুক্ত করা হচ্ছে। বেশিরভাগ ক্ষেত্রে আপনি কেবল selfএই ব্লকের এক বা একাধিক সদস্য ব্যবহার করবেন , সম্ভবত স্লাইডার আপডেট করার জন্য। কাস্টিং selfওভারকিল is পরিবর্তে, এটা ভালো স্পষ্টভাবে ব্যক্ত করতে এবং কাস্ট শুধুমাত্র বস্তু যা আপনি সত্যিই ব্লক ভিতরে প্রয়োজন। উদাহরণস্বরূপ, এটির উদাহরণস্বরূপ UISlider*, বলুন, _timeSliderব্লক ঘোষণার আগে কেবল নিম্নলিখিতটি করুন:
UISlider* __weak slider = _timeSlider;
তারপরে sliderব্লকের ভিতরে কেবল ব্যবহার করুন। প্রযুক্তিগতভাবে এটি আরও সুনির্দিষ্ট কারণ এটি সম্ভাব্য রক্ষণশীল চক্রটিকে কেবলমাত্র আপনার প্রয়োজনীয় অবজেক্টের চেয়ে কমিয়ে দেয়, সমস্ত বস্তুর ভিতরে নয় self।
সম্পূর্ণ উদাহরণ:
UISlider* __weak slider = _timeSlider;
[_embeddedPlayer addPeriodicTimeObserverForInterval:CMTimeMake(1, 1)
queue:nil
usingBlock:^(CMTime time){
slider.value = time.value/time.timescale;
}
];
অতিরিক্তভাবে, সম্ভবত দুর্বল পয়েন্টারটিতে বস্তুটি নিক্ষেপ করা হচ্ছে ইতিমধ্যে অভ্যন্তরের একটি দুর্বল পয়েন্টার selfপাশাপাশি একটি রক্ষণশীল চক্রের সম্ভাবনা হ্রাস বা সম্পূর্ণরূপে বাদ দেওয়া। উপরের উদাহরণে, _timeSliderআসলে কোনও দুর্বল রেফারেন্স হিসাবে সঞ্চিত সম্পত্তি, যেমন:
@property (nonatomic, weak) IBOutlet UISlider* timeSlider;
কোডিং স্টাইলের ক্ষেত্রে, সি এবং সি ++ এর মতো, ভেরিয়েবল ঘোষণাগুলি ডান থেকে বামে আরও ভালভাবে পড়তে পারে are ঘোষণা SomeType* __weak variableএই আদেশ সঠিক কাছ থেকে আরো স্বাভাবিকভাবেই সার্চ যেমন বাম: variable is a weak pointer to SomeType।
timerDispক্লাসের মধ্যে সম্পত্তি?