নির্ভুলতা এবং শৈলীর উন্নতিতে দুটি সেন্ট যুক্ত করা হচ্ছে। বেশিরভাগ ক্ষেত্রে আপনি কেবল 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
ক্লাসের মধ্যে সম্পত্তি?