আমি সম্প্রতি একটি পুরানো এক্সকোড প্রকল্প (যা কেবল সূক্ষ্ম সংকলন করত) সংকলন করার চেষ্টা করেছি এবং এখন আমি এই ফর্মটির অনেক ত্রুটি দেখতে পাচ্ছি:
error: writable atomic property 'someProperty' cannot pair a synthesized setter/getter with a user defined setter/getter
কোড প্যাটার্ন যা এই ত্রুটিগুলির কারণ হয় সর্বদা এটির মতো দেখাচ্ছে:
// Interface:
@property (retain) NSObject * someProperty;
// Implementation:
@synthesize someProperty; // to provide the getter
- (void)setSomeProperty:(NSObject *)newValue
{
//..
}
আমি দেখতে পাচ্ছি কেন ত্রুটি উত্পন্ন হচ্ছে। আমি সংস্থাপককে আমার সম্পত্তি অ্যাক্সেসরগুলি (গেটর এবং সেটার উভয়) সংশ্লেষ করতে বলি এবং তারপরে তারপরে আমি নিজেই সেটারটিকে ওভাররাইড করি। এই কোডটি সর্বদা একটু দূরে গন্ধ পেয়েছে।
সুতরাং, এটি করার উপযুক্ত উপায় কী? আমি যদি এর @dynamic
পরিবর্তে ব্যবহার করি তবে আমাকে আরও @synthesize
ভালভাবে লিখতে হবে। যে একমাত্র উপায়?
atomic
সম্পত্তিগুলির সাথেই ঘটে ? পারমাণবিক বৈশিষ্ট্যগুলির ক্ষেত্রে লকিং কৌশলের ক্ষেত্রে গ্রাহক / সেটার জুটি সিঙ্কে রাখাই ভাল ধারণা হতে পারে। এটি কঠিন যদি একটি অংশ সংশ্লেষিত হয় এবং অন্য অংশটি কাস্টম কোড হয়।