নিশ্চয় কোনও সম্পত্তি ঘোষণায় 'অনুলিপি' স্থাপন করা কোনও বস্তু-কেন্দ্রিক পরিবেশের ব্যবহারের মুখে উড়ে যায় যেখানে স্তূপে থাকা বস্তুগুলিকে রেফারেন্স দ্বারা প্রেরণ করা হয় - আপনি এখানে পাবেন এমন একটি সুবিধা হ'ল কোনও অবজেক্ট পরিবর্তন করার সময় object বস্তুর সমস্ত রেফারেন্স সর্বশেষ পরিবর্তনগুলি দেখুন। অনেকগুলি ভাষা 'রেফ' বা অনুরূপ কীওয়ার্ড সরবরাহ করে যা মানের ধরণের (যেমন স্ট্যাকের কাঠামোগুলি) একই আচরণ থেকে উপকৃত হতে দেয়। ব্যক্তিগতভাবে, আমি অনুলিপি করে অনুলিপি ব্যবহার করতাম এবং যদি আমি মনে করি যে সম্পত্তিটির মূল্য এটি অর্পণ করা বস্তুটির পরিবর্তন থেকে রক্ষা করা উচিত, তবে আমি নিয়োগের সময় সেই বস্তুর অনুলিপি পদ্ধতিতে কল করতে পারি, যেমন:
p.name = [someName copy];
অবশ্যই, সেই সম্পত্তি সম্বলিত অবজেক্টটি ডিজাইন করার সময়, কেবলমাত্র আপনিই জানতে পারবেন যে নকশাটি এমন একটি প্যাটার্ন থেকে কার্যকরী হয় যেখানে অ্যাসাইনমেন্টগুলি অনুলিপিগুলি নিয়ে থাকে - কোকোভিথলভ.কমের নিম্নলিখিত কথাগুলি রয়েছে:
"যখন সেটার প্যারামিটারটি পরিবর্তনযোগ্য হতে পারে তবে আপনার কোনও অনুলিপি অ্যাকসেসর ব্যবহার করা উচিত তবে সতর্কতা ব্যতীত কোনও সম্পত্তির অভ্যন্তরীণ অবস্থা থাকতে পারে না " - সুতরাং আপনি অপ্রত্যাশিতভাবে পরিবর্তনের জন্য মানটি দাঁড়াতে পারবেন কিনা সে বিষয়ে রায় আপনার নিজের। এই দৃশ্যটি কল্পনা করুন:
//person object has details of an individual you're assigning to a contact list.
Contact *contact = [[[Contact alloc] init] autorelease];
contact.name = person.name;
//person changes name
[[person name] setString:@"new name"];
//now both person.name and contact.name are in sync.
এই ক্ষেত্রে, অনুলিপি ব্যবহার না করে, আমাদের যোগাযোগের বস্তুটি স্বয়ংক্রিয়ভাবে নতুন মানটি নিয়ে যায়; যদিও আমরা এটি ব্যবহার করি, তবে আমাদের ম্যানুয়ালি তা নিশ্চিত করতে হবে যে পরিবর্তনগুলি সনাক্ত হয়েছে এবং সিঙ্ক হয়েছে। এক্ষেত্রে, শব্দার্থবিদ্যা বজায় রাখা পছন্দসই হতে পারে; অন্যটিতে, অনুলিপি আরও উপযুক্ত হতে পারে।
name
মুক্তি দেওয়া উচিতdealloc
বা না?