এআরসি দ্বারা প্রবর্তিত সম্পত্তিগুলির জন্য দুটি নতুন মেমরি পরিচালনা বৈশিষ্ট্য রয়েছে strongএবং weak।
এগুলি ছাড়াও copyযা স্পষ্টতই সম্পূর্ণ ভিন্ন কিছু, বনাম এবং বনামের মধ্যে কোনও পার্থক্য রয়েছে ?strongretainweakassign
আমার বোধগম্যতা থেকে, কেবল এখানে পার্থক্য হ'ল এটি পয়েন্টারকে weakবরাদ্দ করবে nil, যখন assignহবে না, যার অর্থ প্রোগ্রামটি ক্র্যাশ হয়ে যাবে যখন আমি পয়েন্টারে একটি বার্তা প্রকাশ করি এটি প্রকাশ হওয়ার পরে। তবে আমি যদি ব্যবহার করি তবে weakএটি কখনই ঘটবে না, কারণ বার্তা প্রেরণে nilকিছু হবে না।
আমি strongএবং এর মধ্যে কোনও পার্থক্য সম্পর্কে জানি না retain।
সেখানে কোন কারণে আমি ব্যবহার কেন করা উচিত যে assignএবং retainনতুন প্রকল্পের, বা থামানোর জন্য ধরনের হয়?
weakএবং strong) এবং 4 পরিবর্তনশীল জীবনকাল কোয়ালিফায়ার ( __strong, __weak, __unsafe_unretained, __autoreleasing)। নীচে এআরসি নোটগুলি দেখুন।
assignসাথে এটিআরসি সংকলন করার সময় ব্যবহার করা ছিল একটি ত্রুটি। এটি সম্পর্কে অনেকগুলি মুছে ফেলা উত্তর রয়েছে। চূড়ান্ত মুক্তির আগেই এটি পরিবর্তন করা হয়েছিল বলে মনে হয়। unsafe_unretainedআমাদের অনেক প্রাথমিক গ্রহণকারীদের পক্ষে পছন্দের বৈশিষ্ট্য। প্রমাণের জন্য এটি unsafe_unretainedঅ্যাপলের "প্রোগ্রামিং উইথ অবজেক্টিভ-সি" এর শিরোনাম "এনক্যাপসুলেটিং ডেটা" বিভাগের অধীনে "কিছু শ্রেণীর জন্য অনিরাপদ অপ্রকাশিত রেফারেন্সগুলি ব্যবহার করুন" বিভাগের অধীনে একটি বৈধ বৈশিষ্ট্যযুক্ত চেহারা। যা বলে: "একটি সম্পত্তির জন্য, এর অর্থ অনিরাপদ_রক্ষিত বৈশিষ্ট্যটি ব্যবহার করা হচ্ছে:"
strong,weakএবংunsafe_unretained।